【发布时间】:2017-03-30 23:19:09
【问题描述】:
首先,我将双链表循环成这样:
1 3 9 11 13
在那之后,我想在 3 之后插入 99。所以我必须像这样创建一个变量结构:
node *baru;
baru = new node;
但事实停在那里。 这是我的完整代码:
#include <iostream>
using namespace std;
struct node
{
int item;
node *next;
node *prev;
};
int main()
{
node* list = new node;
list->item = 1;
list->next->item = 3;
list->next->next->item = 9;
list->next->next->next->item = 11;
list->next->next->next->next->item = 13;
list->next->next->next->next->next = list;
list->prev = list->next->next->next->next;
list->next->prev = list;
list->next->next->prev = list->next;
list->next->next->next->prev = list->next->next;
list->next->next->next->next->prev = list->next->next->next;
node *bantu = list;
for (int i = 1; i <= 10; i++)
{
cout << bantu->item << endl;
bantu = bantu->next;
}
cout << endl;
bantu = list;
for (int i = 1; i <= 10; i++)
{
cout << bantu->item << endl;
bantu = bantu->prev;
}
node *baru;
baru = new node;
cout << "go !" << endl;
baru->item = 99;
baru->next = list->next->next;
baru->prev = list->next;
list->next->next = baru;
list->next->next->next->prev = baru;
cout << endl;
bantu = list;
for (int i = 1; i <= 10; i++)
{
cout << bantu->item << endl;
bantu = bantu->next;
}
cout << endl;
bantu = list;
for (int i = 1; i <= 10; i++)
{
cout << bantu->item << endl;
bantu = bantu->prev;
}
cout << "SELESAI" << endl;
return 0;
}
如果成功,程序肯定会输出“go”。但在这种情况下,程序不会输出“go”。这意味着创建新结构时出错。但是为什么会报错呢?
抱歉英语不好 :D 谢谢你
【问题讨论】:
-
强烈建议花一些时间在
insert函数上 -
list->next未初始化,这是未定义的行为。它指向的地方没有node。
标签: c++ pointers struct linked-list runtime-error