首页 新闻 赞助 找找看

初学者,问一个简单的单链表问题(C语言版-数据结构)

0
[已解决问题] 解决于 2017-03-14 20:09

先贴出代码!!!!!!

!!!!!!!!!!!

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

typedef struct LNode
{
    int date;
    struct LNode *next;
}Node, *LinkList;

//带头结点的单链表生成
void CreateList(LinkList L, int n)
{
    L=(LinkList)malloc(sizeof(Node));//生成头指针并分配空间
    L->next=NULL;//初始化单链表,此时是空表

    LinkList p;
    int i;
    for(i=n;i>0;i--)
    {
        p=(LinkList)malloc(sizeof(Node));
        scanf("%d",&p->date);
        p->next=L->next;
        L->next=p;
    }
}

//当第pos个元素存在时,把他的值赋返回
int GetElem(LinkList L,int pos)
{
    LinkList p; int j=1,x;
    p=L->next;
    while(p&&j<pos){p=p->next;j++;}
    if(!p||j>pos)
        return 0;
    else
        x=p->date;
        return x;
}

int main()
{
    int l1,l2,l3;//分别是三个链表的长度
    int x;
    LinkList La,Lb,Lc;

    scanf("%d",&l1);
    CreateList(La, l1);
    x=GetElem(La,1);
    printf("%d",x);

    scanf("%d",&l2);
    CreateList(Lb, l2);
    scanf("%d",&l3);
    CreateList(Lc, l3);
}

!!!!!!!!!!

问题是:运行到printf();(在文中用高亮表示)时,程序终止。

本人还不会调试bug,所以来请教各路前辈。

suitcase的主页 suitcase | 菜鸟二级 | 园豆:208
提问于:2017-03-13 23:25
< >
分享
最佳答案
1

在执行到 x=GetElem(La,1);时候,La的值为空,取不到。在CreateList函数中返回L,赋值到La;

奖励园豆:5
苏幕遮soft | 菜鸟二级 |园豆:401 | 2017-03-14 11:11

谢谢指教,我明白了。

suitcase | 园豆:208 (菜鸟二级) | 2017-03-14 20:07
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册