gpt4 book ai didi

c++ - 我总是在运行这个程序时遇到无限循环。

转载 作者:行者123 更新时间:2023-11-28 02:23:48 25 4
gpt4 key购买 nike

此代码用于在列表中找到“2”的值/数据后在链表中插入节点。

#include<iostream>
using namespace std;

struct list{
int data;
list *next;
};

list * create(){
char a;
int i=1;
list *move,*start,*temp;
start=new list();
temp=start;
cout<<"Do u want to enter a new node. Press y but anything.\n";
cin>>a;
while(a=='y'){
cout<<"Enter data for node "<<i<<endl;
cin>>start->data;
move=new list();
start->next=move;
start=start->next;
i++;
cout<<"Do u want to enter a new node. Press y but anything.\n";
cin>>a;
}
start->next=NULL;
return temp;
}

void display(list *ob){
int i=1;
while(ob->next!=NULL){
cout<<"\nData for node "<<i<<" is :"<<ob->data;
ob=ob->next;
i++;
} }

void add(list *temp){

while(temp->data!=2){
temp=temp->next;
}
int data;
list *var=temp;
list *node1=new list();
temp->next=node1;
var=var->next;
node1->next=var;
cout<<"Enter data for new node who's data is 2";
cin>>data;
node1->data=data;
cout<<"data inserted";

}

int main(){

list *point=create();
add(point);
display(point);
}

如果有人能帮我调试它,那将是一个很大的帮助。谢谢。我在显示方法中遇到了无限循环。如果我在没有添加方法的情况下运行该程序,那么它运行良好。

最佳答案

这是一个简单的修改,可以使您的代码在 add(list*)

中工作
int data;
list *node1 = new list;
node1->next = temp->next;
temp->next = node1;

我们在创建 node1 后立即设置 next ,然后我们只需将值 temp->next 设置为 node1.

关于c++ - 我总是在运行这个程序时遇到无限循环。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31424861/

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