小白c语言链表问题

发布于 2022-09-02 00:05:29 字数 1242 浏览 12 评论 0

刚开始学c,在刷题,debug了好久没有发现问题。。不知道下述代码中的p_node为什么一直是null,请各位大神指点一波?
问题描述:
4-3 求链式表的表长 (10分)
本题要求实现一个函数,求链式表的表长。
输入样例:

1 3 4 5 2 -1
输出样例:

5

我的代码:

#include <stdio.h>
#include <stdlib.h>

typedef int ElementType;
typedef struct LNode *PtrToLNode;
struct LNode {
    ElementType Data;
    PtrToLNode Next;
};
typedef PtrToLNode List;

List Read(); /* 细节在此不表 */

int Length( List L );

int main()
{
    List L = Read();
    printf("%d\n", Length(L));
    return 0;
}

/* 你的代码将被嵌在这里 */
List Read()
{
    ElementType a[100];
    int i = 0;
    List p_list,p_node;

//    初始化链表
    p_list = (List)malloc(sizeof(List));

    for (int j = 0; j < 100; ++j) {
        a[j] = 0;
    }
    //一直扫描,直到输入为-1时跳出
    scanf("%d",&a[i]);
    p_list->Data = a[i];
    p_list->Next = NULL;
    p_node = p_list->Next;

    while (a[i]!=-1)
    {
        i++;
        scanf("%d",&a[i]);
        p_node = (List)malloc(sizeof(List));
        p_node->Data = a[i];
        p_node->Next = NULL;
        p_node = p_node->Next;
    }
    return p_list;
}
int Length( List L )
{
    int num;
    while (L->Next != NULL)
        num++;
    return num-1;
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

情何以堪。 2022-09-09 00:05:29

问题已解决,链表新建部分出现问题。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文