01/10/2018, 08:27

Lỗi về sắp xếp danh sách liên kết đơn!

void Swap(Node *&p, Node *&q){
Node *tmp;
tmp = q->next;
q->next = p;
p->next = tmp;

}
void SortAscending(List l){
while (l.head){
    for (Node *p=l.head; p!=0; p=p->next){
        for (Node *q=l.head->next; q!=0; q=q->next){
            if (p->data > q->data) Swap(p,q);
        }
    }
    l.head= l.head->next;
}
}

Lúc sắp xếp xong chạy ra danh sách thì nó lại xuất ra được 1 phần tử đầu tiên và kết thúc, mình chưa hiểu tại sao? Ai đó xem giúp mình có thiếu chỗ nào hay sai ở đâu không ajh?

rogp10 viết 10:43 ngày 01/10/2018

Người ta swap là swap data chứ bạn swap cái next là nát hết liên kết rồi còn gì.

Bài liên quan
0