#include <bits/stdc++.h>
using namespace std;
struct node {
int data;
node* next;
};
void insertnode(node* conductor)
{
node* t;
t = new node;
conductor->next = t;
conductor = conductor->next;
conductor->next = 0;
cin >> conductor->data;
}
int main()
{
node *root, *conductor;
root = new node;
root->next = 0;
cin >> root->data;
conductor = root;
for (int i = 0; i < 4; i++) {
insertnode(conductor);
}
conductor = root;
while (conductor->next != 0) {
cout << conductor->data;
conductor = conductor->next;
}
cout << " " << conductor->data << " ";
return 0;
}
该程序应显示所有节点,即root和i = 0到1 = 3(&lt; 4),但它只显示根节点和最后输入的节点。 我的代码有什么问题?我想显示根节点的所有节点 到最后一个节点。
答案 0 :(得分:0)
我认为您应该将for循环更改为以下内容。
for(int i=0;i<4;i++){
insertnode(conductor);
conductor = conductor->next;
}
答案 1 :(得分:0)
在这种情况下,列表中只有2个节点。其他人在记忆中遗漏。您必须添加conductor = conductor-&gt; next;在你的for循环中,因为&#34;指挥&#34; insertloop函数中的指针更改仅在此函数内可用。在main()中,它与调用此函数之前保持一致。