链接列表节点未显示

时间:2017-02-04 14:18:52

标签: c++

#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),但它只显示根节点和最后输入的节点。 我的代码有什么问题?我想显示根节点的所有节点 到最后一个节点。

2 个答案:

答案 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()中,它与调用此函数之前保持一致。