gpt4 book ai didi

c++ - 在插入期间对链表进行排序

转载 作者:太空宇宙 更新时间:2023-11-04 13:01:36 24 4
gpt4 key购买 nike

所以我尝试按降序将节点插入链表,但是当我得到重复的数字并且找不到解决问题的好方法时,我很挣扎。我要么遇到丢失的数字/程序崩溃,要么程序无​​限次只列出 1 个数字。

这是我认为符合“else”语句的代码,这是我无法弄清楚的部分,我只是离开我的最后一个版本,它显然不起作用

void Link::insert(int number) {
Node *news = new Node;

news->number = number;

if(first == NULL) {
first = news;
}
if(news->number > first->number) {
Node *temp = first;
first = news;
news->next = temp;
} else {
Node *temp = first;
while (temp->next || news->number < temp->number) {
temp=temp->next;
}
temp->next = news;
news->next = temp->next;
}

}

如果需要其他功能或我的 main.cpp,请告诉我。

最佳答案

也许

    void Link::insert(int number){
Node *news = new Node;

news->number = number;

if(first == NULL){
first = news;
return;
}

for(Node *i=first, *pred=NULL;!i;i=i->next){
if(i->number<number){
if(i==first) {
news->next=first;
first=news;
} else {
pred->next=news;
news->next=i;
}
break;
}
pred=i;
}
}

关于c++ - 在插入期间对链表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43964190/

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