链表中冒泡排序的 C++ 问题
c++ issue with bubble sort in linked list
我需要一些有关使用链表进行 C++ 冒泡排序的帮助。我需要对 int 数字列表进行排序,例如 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);
}
此代码 return 10-50-55-33。为什么?错误在哪里?我需要 10-33-50-55!!
非常感谢大家!
它不会转到最后一个元素,因为最后一个元素的下一个指针是 NULL ,
你需要"j!=nullptr;"
你把这些家伙和他们自己比较(这不是你的问题的原因,但它看起来并不酷 :D )
如果要修复它,请"j=i->next;"
我需要一些有关使用链表进行 C++ 冒泡排序的帮助。我需要对 int 数字列表进行排序,例如 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);
}
此代码 return 10-50-55-33。为什么?错误在哪里?我需要 10-33-50-55!!
非常感谢大家!
它不会转到最后一个元素,因为最后一个元素的下一个指针是 NULL ,
你需要"j!=nullptr;"
你把这些家伙和他们自己比较(这不是你的问题的原因,但它看起来并不酷 :D )
如果要修复它,请"j=i->next;"