SẮP XẾP TRONG DANH SÁCH LIÊN KẾT ĐƠN

Tình hình e có làm 1 danh sách liên kết đơn bao gồm họ và tên sinh viên,mã số.E muốn sắp xếp theo mã số nhưng khi sắp xếp chỉ có mã số sắp xếp theo thứ tự còn thông tin thì nó không thay đổi(Cái này e cũng đoán ra vì e chỉ cho con trỏ trỏ đến mã số)Ai có ý tưởng gì để nó lấy luôn cả họ và tên đi theo không?Tiện e cũng hỏi luôn ý tưởng sắp xếp theo họ và tên

*
.Gà mới mong mn giúp đỡ


Bạn đang xem: Sắp Xếp Trong Danh Sách Liên Kết Đơn

Không biết bác đã học đến struct chưa, nếu học rồi thì dùng struct rất là đơn giản

*


Tức là dùng danh sách liên kết hả?Mà bác đã dùng struct tức là mỗi sinh viên được bao gói trong 1 struct, vậy thì làm gì có chuyện thay đổi mã số thông tin sv không thay đổi theo, nó luôn đi với nhau mà


void HoanVi(int &a, int &b){int c = a;a = b;b = c;}void SapXep(List &l){NhanVien *i, *j;for (i = l.dau;i != l.cuoi;i = i->next){for (j = i->next;j != NULL;j = j->next){if (i->ms>j->ms){HoanVi(i->ms, j->ms);}}}HienThi(l);}hàm sắp xếp của mình ntn.Và nó lấy mã số người này gán cho người kia


Mình cũng hiểu sơ sơ về code của bạn rồi. Điểm chốt mà bạn sai là hoán vị ở đây là phải hoán vị cả cái struct chứ ko phải hoán vị mỗi cái ‘ms’. Bạn tráo đổi 2 sinh viên cho nhau chứ có phải tráo đổi ms của 2 sinh viên đâu ( mã số của thằng A cũng như Chứng minh thư của nó, ai lại đi cho thằng bạn được).Còn cách tráo đổi 2 sinh viên cho nhau thì bạn dùng hàm HoanVi (NhanVien *a, NhanVien *b);


Bạn phải làm 1 cái hàm đổi. ví dụ struct SV của bạn có ms, tên, điểm.

void swap(sv s1,sv s2){sv temp;strcpy(temp.ms,s1.ms);strcpy(temp.ten,s1.ten);temp.diem=s1.diem;// Ở phần sau thì tương tự cái trên}Theo mình thì làm như thế này. Đổi từng giá trị hết.


Xem thêm: Kết Quả Sau Khi Niềng Răng, Những Thay Đổi Rõ Rệt Trong Quá Trình Niềng Răng

khi thay đổi thứ tự thì phải thay đổi cả struct hoặc class của sv đó , chứ k phải thay đổi mỗi trường mã số, vì bạn đang làm 1 bài toán mà kiểu dữ liệu của nó k có sẵn trong c / c++ nên bạn phải dùng struct hoặc class để tạo ra 1 kiểu dl phù hợp cho bài toán, khi thay đổi chú ý bạn thay đổi thứ tự của cái gì>?


Cám ơn bác đã chia sẻ.Đã làm và thành công rực rỡ

*
)E xin chia sẻ thêm là trong hàm strcpy còn phả thêm 2 bước nữa là copy s2 cho s1,và copy temp cho s2Cám ơn luôn bạn Nấm lùn IT nhé
*
mn giúp đỡ nhiệt tình quá


Tiện topic này hỏi luôn mn có ý tưởng gì về sắp xếp danh sách theo tên sinh viên không?Xem 1 số thì có bảo dùng hàm strcmp so sánh mà e còn hơi mơ hồ

ý tưởng của e là tách riêng hotendem va ten thanh 2 chuỗi làm thì cũng ok rồi nhưng e muốn mn cho e ý kiến ví dụ là chỉ 1 chuỗi hovaten luôn mà nó biết đâu là ten để so sánh

*


Google said: What does search mean??

*
*
Khiêm Lê
*

Quản Lý Nhân Viên Bằng Danh Sách Liên Kết đơn | Khiêm Lê

Quản lý nhân viên bằng danh sách liên kết đơn