我刚刚接受了测试,我只能发现2,我们的教授在返回时没有给我们正确的答案..想知道你们是否可以帮助我发现这个代码中的4个错误链接列表... < / p>
int main() {
struct node
{
int data;
node * next;
}
// create empty list
node * list;
// insert six nodes at front of list
node *n;
for (int i=0;i<=5;i++)
{
n = new node;
n->data = i;
n->next = list;
}
// print list
n = list;
while (!n)
{
cout << n->data << " ";
n = n->next;
}
cout << endl;
答案 0 :(得分:5)
struct node
在声明结尾处遗漏;
list
未初始化为NULL
list
未指向节点插入后的头部while(n)
而不是while(!n)
答案 1 :(得分:2)
您需要初始化列表
list = NULL;
你总是指定n-&gt;列表旁边,但永远不会给列表一个值。
for (int i=0;i<=5;i++)
{
n = new node;
n->data = i;
n->next = list;
list=n;
}
应该没有!或者它不会打印任何东西。
while (!n)
答案 2 :(得分:1)
脱离我的头顶(有些人已经注意到了......):
;
定义后没有struct
list
未初始化list
分配给每个next
指针,但从未更新n
从list
分配的(未初始化的)值会丢弃您目前所做的任何事情(内存泄漏)main()
缺少结尾}
(如果您没有发帖,可能不会出错)while
循环上的错误条件 - 仅在n == 0
答案 3 :(得分:0)
错误
1。node * list
因为所有节点都指向同一个指针。它们都只指向一个项目(它不会使它成为一个列表)
2。while(!n)
应该是while(n)或什么都不打印
3.list永远不会分配给任何东西
node * list
创建一个空列表,但此列表未初始化为null
4. struct node
错过分号;
5.Post初始化node * list
仍然是空的,无处可去。所有节点现在都指向它,代码分解为无政府状态!