就是为什么这个对链表的遍历只输出最后一个插入的数字?
#include<iostream>
using namespace std;
typedef struct sqlist{
int data;
sqlist *next;
int size;//链表长
}*linklist;
void initlist(linklist &L) //初始化链表
{
L=new sqlist;
L->size=0;
L->next=NULL;
}
void enlist(linklist &L,int n,int *e) //尾插法,n是插入的数组的个数,*e是要传入的数组
{
linklist p,r;
r=L;
for(int i=0;i<n;i++)
{
p=new sqlist;
p->data=e[i];
p->next=NULL;
r->next=p;
r=p;
L->size++;
}
}
void addrear(linklist &L,int e)//在链表尾端只插入一个整型数
{
int a[1]={e}; //创建一个容量为1整型数组将它插入到尾端
enlist(L,1,a); //调用尾插法函数
}
int main()
{
linklist L;
initlist(L);
//尾部分别插入三个数字,分三步
addrear(s3,1);
addrear(s3,2);
addrear(s3,3);
//下面是遍历上面的那个链表
linklist p=s3->next;
while(p!=NULL)
{
cout<<p->data; //现在的问题是这个对链表的遍历只输出最后一个插入的数字
p=p->next;
}
}