工学义子 2022-05-15 19:22 采纳率: 57.5%
浏览 31
已结题

c++链表后插法的问题

就是为什么这个对链表的遍历只输出最后一个插入的数字?


#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;
    }
}
  • 写回答

1条回答 默认 最新

  • Jacob*y 2022-05-16 10:39
    关注

    s3有进行初始化吗? enlist(linklist &L,int n,int *e)你这个L是尾节点吗?不是尾节点那怎么尾插?

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 9月20日
  • 创建了问题 5月15日

悬赏问题

  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站