簡體   English   中英

鏈表中冒泡排序的C ++問題

[英]c++ issue with bubble sort in linked list

我需要一些C ++氣泡排序和鏈表幫助。 我需要對整數編號列表進行排序,例如55-10-50-33。 我用了這段代碼

struct lista2{
    int val;
    lista2 *next;
};


void swap(int& x, int& y){
    int tmp ; tmp = x ; x = y ; y = tmp ;
}


ptr_lista2 sort (ptr_lista2 head){
    ptr_lista2 i,j;
    for(i=head; i->next!=NULL;i=i->next){
        for (j=head;j->next!=NULL;j=j->next){
            if(i->val < j->val) swap(i->val, j->val);
        }
    }
    return (head);
}

此代碼返回10-50-55-33。 為什么? 錯誤在哪里? 我需要10-33-50-55!

非常感謝大家!

它不會轉到最后一個元素,因為最后一個元素的下一個指針為NULL,

您需要使“ j!= nullptr;”

您將這些家伙與自己進行比較(這不是問題的根源,但看起來並不酷:D)

如果要修復它,請使“ j = i-> next;”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM