C++,学习链表

C++, learning linked list

本文关键字:链表 学习 C++      更新时间:2023-10-16

我正在学习一个非常简单的链表,
但下面的代码不起作用,当我输入1和2时,系统输出只有1和NULL
有人能帮帮我吗
这是我的密码。

#include <iostream>  
using namespace std;  
struct node  
{  
    char username[10];  
    node *next;  
};  

int main()  
{  
    node *head;  
    node *place;  
    node *tail;  
    head = new node;  
    place = head;  
    tail = place->next;  
    cout<<"username 1 ";  
    cin>>place->username;  
    place = tail;  
    place = new node;  
    tail = place->next;  
    cout<<"username 2 ";  
    cin>>place->username;  
    place = head;  
    cout<<"username 1 ";  
    cout<<place->username<<endl;  
    place = place->next;  
    cout<<"username 2 ";  
    cout<<place->username<<endl;  

    return 17;  
}  

如有任何帮助,我们将不胜感激,谢谢。

从不将节点链接在一起。在整个程序中,没有任何地方设置下一个字段。把这个写在纸上,一次一句。而不是

place = new node;  
tail = place->next;

创建新节点时,将其添加到列表的末尾:将当前末端链接到新节点,然后移动末端指针。

place = new node;  
tail->next = place;
tail = place;
#include <iostream>  
using namespace std;  
struct node  
{  
    char username[10];  
    node *next;  
};  

int main()  
{  
    node *head;  
    node *place;  
    node *tail; 
    place = new node;  
    head = place;      // head is assigned to the first created place and should never be modified ever after.
    tail = head;      // at the beginning the last element is also the first, it will move along and always point to the last node created

    cout<<"username 1 ";  
    cin>>place->username;

    place = new node;    // create new node
    tail->next = place;  // assign next
    tail = place;        // then point the tail to the new node
    cout<<"username 2 ";  
    cin>>place->username;  
    place = head;      // rewind the list to the head
    cout<<"username 1 ";  
    cout<<place->username<<endl;  
    place = place->next;  
    cout<<"username 2 ";  
    cout<<place->username<<endl;  

    return 17;  
}