30/09/2018, 16:52
Danh Sách liên kết
Hiện tại em đang làm bài trong sách mà ngồi mấy tiếng ko biết sai chỗ nào ở Hàm tách 1 DSLK thành 2 cái ? Nên mạn phép lên trang để hỏi . Mong mọi người giúp đỡ
Em chỉ xin nêu ra chỗ em sai
void O_put_3(List l,List &A,List &B){ // tach 1 DSLK thanh 2 danh sack lien ket
So *DanhSach; DanhSach = l.Head;
int dem = 0;
while(DanhSach != NULL){
if(dem % 2 == 0){
if(A.Head == NULL){
So *temp_1 = DanhSach;
temp_1->pNext = NULL;
A.Head = A.Tail = temp_1;
}
else{
So *temp_1 = DanhSach;
temp_1->pNext = (So *)malloc(sizeof(So)); temp_1->pNext = NULL;
A.Tail->pNext = temp_1;
A.Tail = temp_1;
}
}
else{
if(B.Head == NULL){
So *temp_2 = DanhSach;
temp_2->pNext = NULL;
B.Head = B.Tail = temp_2;
}
else{
So *temp_2 = DanhSach;
temp_2->pNext = (So *)malloc(sizeof(So));
temp_2->pNext = NULL;
B.Tail->pNext = temp_2;
B.Tail = temp_2;
}
}
dem++;
DanhSach = DanhSach->pNext;
}
/*A.Tail->pNext = NULL;
B.Tail->pNext = NULL;*/
}
Em chân thành cảm ơn mọi người đã xem topic này !
Học
Bài liên quan
Em muốn tách như thế nào?
bạn ấy muốn tách xen kẽ, phần tử vị trí chẵn vào A, phần tử vị trí lẻ vào B
hình như chỗ này hơi kì, tạo ra rồi lại bỏ đi
Vậy thì vẫn thiếu thông tin qúa,
So
,List
có cấu trúc như thế nào còn chưa biếtHình như tài liệu này có thể giải đáp được phần bạn đang thắc mắc.
tại lúc đầu danh sách nó trỏ tới tiếp phía sau mình chỉ cho nó trỏ về NULL thôi
cái void* là do trong sách nó biểu em cần phải làm thế ! @@ em ko hiểu sao nữa
Sorry Hoàng ! cảm ơn Hoàng đã sửa lại comment
Dùng
void*
cũng được, bởi vì con trỏvoid*
có thể trỏ tới bất kỳ kiểu dữ liệu nào @Thai_Hoc_Nguyen