weixin_45631165 2019-12-03 20:51 采纳率: 81.8%
浏览 195
已采纳

链表相关问题,不知道哪里出错了,求大佬看看?

void InitList(LinkList &L)
{
    L = (LinkList)malloc(sizeof(LNode));
    if (!L)
        exit(OVERFLOW);
    L->next = nullptr;
}
Status ListEmpty(LinkList L)
{
    if (L->next)
        return FALSE;
    else
        return TRUE;
}
int ListLength (LinkList L)
{
    LinkList q;
    q = L->next;
    int i = 0;
    while (q)
    {
        i++;
        q = q->next;
    }
    return i;
}
int main()
{
    LinkList L;
    ElemType e;
    Status i;
    int j, k;
    InitList(L);  //构造一个空的链表
    for (j = 1; j <= 5; j++)
    {
        ListInsert(L, 1, j);  //在链表L的第一个元素之前插入j
    }
    for (j = 1;j <= 5; j++)
    {
        L = L->next;
        printf("%d\n", L->date);
    }
    i = ListEmpty(L);
    printf("是否为空表? i =%d(1:是,0:否),表L的长度 = %d\n",i, ListLength(L));
    system("pause");
        return 0;
}

图片说明

求大佬看一下啊 为什么前边输出了54321 后边还显示为空表啊 ,自己折腾了半天 没弄明白哪里错了

  • 写回答

2条回答 默认 最新

  • threenewbee 2019-12-03 23:51
    关注
    for (j = 1;j <= 5; j++)
    {
        L = L->next;
        printf("%d\n", L->date);
    }
    

    这代码将L拨到后面去了
    可以写
    LinkList L1 = L;
    for (j = 1;j <= 5; j++)
    {
    L = L->next;
    printf("%d\n", L->date);
    }
    L = L1;
    ...

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 关于#qt#的问题:Qt代码的移植问题
  • ¥50 求图像处理的matlab方案
  • ¥50 winform中使用edge的Kiosk模式
  • ¥15 关于#python#的问题:功能监听网页
  • ¥15 怎么让wx群机器人发送音乐
  • ¥15 fesafe材料库问题
  • ¥35 beats蓝牙耳机怎么查看日志
  • ¥15 Fluent齿轮搅油
  • ¥15 八爪鱼爬数据为什么自己停了
  • ¥15 交替优化波束形成和ris反射角使保密速率最大化