谁能告诉我为什么我的程序在无限的循环中进行
Can anyone tell me why my program is going in infinite Loop?
为什么我的代码给出无限循环,我已经多次检查了我的代码,但我不知道错误在哪里,但是我的输出在无限的循环中为34,这是一个双链接列表的代码!
所以请告诉我错误在哪里,以及为什么我的循环在我的代码中显示34而不是77,并且我的打印功能有任何问题吗?
#include<iostream>
using namespace std;
struct Node
{
int data;
Node *next;
Node *prev;
};
class Linked
{
public:
Node *head;
Node *tail;
Linked()
{
head=NULL;
tail=NULL;
}
void add(int data,int position)
{
Node *n=new Node;
Node *n1=new Node;
n->data=data;
n->next=NULL;
n->prev=NULL;
if(head==NULL)
{
head=n;
tail=n;
cout<<"Linked list formed"<<endl;
}
if(position==0)
{
head->prev=n;
n->next=head;
head=n;
cout<<"Linked list created"<<endl;
}
else
{
n1=head;
int posi=position;
while(posi>1)
{
n1=n1->next;
posi--;
}
n->next=n1->next;
n->next->prev=n;
n1->next=n;
n->prev=n1;
}
}
void print()
{
Node *n=new Node;
n=head;
while(n!=NULL)
{
cout<<n->data<<endl;
n=n->next;
}
}
};
int main()
{
Linked l;
l.add(34,0);
l.add(77,0);
// l.add(44,1);
// l.add(90,2);
l.print();
return 0;
}
add(数据,位置(有2个问题。
对于双重链接列表中的第一个节点,一旦头部和尾巴指向相同的节点,我们就完成了。位置无关紧要,当没有节点时。
因此,在"形成链接列表"之后停止添加逻辑。添加其他并将所有代码移动到其中,它可以按预期工作。
代码应该能够断言head-> prev和尾巴 -> null。
同时添加一个新节点时,您不想为2x节点分配内存。
不要致电N1。
相关文章:
- 循环无限运行C++解决骑士之旅问题
- 过载'operator new'如何导致无限循环?
- C++正则表达式无限循环
- 程序在尝试猜测它选择的随机数时进入无限循环?
- 遍历链表时的无限循环
- 循环链表:无限循环
- 比较两个字符串后卡在无限循环中
- 在做一段时间内检查字符的无限循环
- 逐字读取文本文件中的每一行并转换为 int(无限循环或崩溃?
- 在这个无限循环中,当输入 0 时终止,当输入 int 范围之外的任何内容时,程序行为不正常
- 可能的无限循环
- 超出 int 的值范围后的无限循环
- 为什么这段代码会导致无限循环?
- 运行无限循环的最小二叉树问题
- 在分配和发布递增循环迭代器时C++无限循环(gcc 错误?
- 连接线程时的无限循环
- 为什么这种方法会进入无限循环?
- 一个关于应用指针的问题,它使循环无限
- 为什么在循环无限重复时会这样做
- c++嵌套循环无限重复(c++类项目)