标题:初学链表 遇到问题了
取消只看楼主
kd83kdi93
Rank: 2
等 级:论坛游民
帖 子:65
专家分:52
注 册:2011-9-18
结帖率:70%
已结贴  问题点数:5 回复次数:1 
初学链表 遇到问题了
#include <stdio.h>
#include <stdlib.h>

struct st
{
    int a;
    struct st * pNext;
};


struct st * create(void);
void show(struct st *);

int main()
{
    struct st * pHead;
    pHead=create();
    show(pHead);
}



struct st * create(void)
{
    int a,b,val;
    struct st * pHead;
    struct st * pMid;
    struct st * pNew;
    printf("请输入节点数:");
    scanf("%d",&b);
    pHead=(struct st *)malloc(sizeof(struct st));
    pMid=pHead;
    pMid->pNext =NULL;
    for(a=1;a<=b;a++)
    {
        pNew=(struct st *)malloc(sizeof(struct st));
        printf("请输入第%d个节点的数据:",a);
        scanf("%d",&val);
        pNew->a =val;
        pMid->pNext =pNew;
        pMid=pNew;
        pMid->pNext =NULL;

    }
    printf("数据输入完毕\n");
    return pHead;
}


void show(struct st * pHead)
{
    struct st * pMid;
    if (pHead->pNext ==NULL)
    {
            printf( "链表为空");
            exit(-1);
    }
    else
    {
        pMid=pHead->pNext ;
        while(pMid->pNext !=NULL)
        {
            printf("%d ",pMid->a );
            pMid=pMid->pNext ;
        }
        printf("\n输出完毕");
    }
}

最后只能输入第一个有效节点的值  不知道哪里错了  求教
搜索更多相关主题的帖子: include create 
2011-10-19 11:20
kd83kdi93
Rank: 2
等 级:论坛游民
帖 子:65
专家分:52
注 册:2011-9-18
得分:0 
回复 2楼 hellovfp
为什么是pMid!=NULL  而不是 pMid->pNext!=NULL呢?
2011-10-19 12:17



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-352898-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.420886 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved