gpt4 book ai didi

c++ - 段错误 : Bubble sort on link list

转载 作者:行者123 更新时间:2023-11-30 03:29:07 25 4
gpt4 key购买 nike

我正在尝试对链表进行冒泡排序并出现段错误。我对链接列表排序是否正确?调试显示比较功能也有问题。

标记了出现 SEGFAULT 的行。

node { 
string key;
node *next;
};

void sorting(node &start){
node *ptr,*ptr1,*pptr;
ptr=start.next;
while(ptr){

bool flag = true;
ptr1=start.next;
pptr=ptr1;
while(ptr1){
if(flag){ //for starting node
flag=false;
if(ptr1->key.compare(ptr1->next->key)>0){
node *temp=ptr1->next;

start.next=temp;
ptr1->next=temp->next;
temp->next=ptr1;
}
}else{
if(ptr1->key.compare(ptr1->next->key)>0){
node *temp=ptr1->next;
pptr->next=temp;
ptr1->next=temp->next;
temp->next=ptr1;
}
}
pptr=ptr1;
ptr1=ptr1->next;
if(!ptr1->next) //getting segmentation fault at this line
break;
}
ptr=ptr->next;
}
}

最佳答案

您正在取消引用可能未初始化的指针。

我猜你应该将条件更改为(因为在前面的步骤中你已经移动到下一个节点)

if(!ptr1)

或者至少检查指针是否指向 NULL。

if (pt1 && !ptr1->next)

关于c++ - 段错误 : Bubble sort on link list,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45943920/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com