插入链表的元素未显示

elements inserted in the linked list is not being displayed

我正在尝试通过调用用户定义的函数插入和使用用户定义的显示函数显示来创建和插入具有 2 个节点的单向链表。预期输出:- 5 10 我得到的输出是:= 5 请帮忙。

#include<iostream>
#include<stdlib.h>
using namespace std;

struct list
{
    int data;
    struct list *link;
};
struct list *start=NULL;
int insert(int a)
{
    struct list *n,*t,*p;
    n= new list;
    n->data=a;
    n->link=NULL;
    if(start==NULL)
    {
        start=n;
    }
    else if(start!=NULL)
    {
        t=start;
        while(t->link!=NULL)
        {
            t=t->link;
        }
        t->link=n;
    }
    return(0);
}
int Display(struct list *p)
{ 

    while(p->link!=NULL)
    {
        cout<<p->data;
        p=p->link;
    }
    return(0);

}
int main()
{  
   insert(5);
   insert(10);
   Display(start);
   return(0);
}

顺序很重要。先打印节点数据再遍历link。 使用您的代码,一旦您进入最后一个节点,您将不会打印数据,因为该节点不会有 link,这是不正确的。

int Display(struct list *p)
{ 
    cout<<p->data;
    while(p->link!=NULL)
    {
        p=p->link;
        cout<<p->data;
    }
    return(0);

}

Display函数中,将while(p->link!=NULL)替换为while(p != NULL)。否则,您不会打印最后一个节点的数据。