标题:初学链表 遇到问题了
只看楼主
kd83kdi93
Rank: 2
等 级:论坛游民
帖 子:65
专家分:52
注 册:2011-9-18
结帖率:70%
已结贴  问题点数:5 回复次数:3 
初学链表 遇到问题了
#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
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
得分:5 
我这里能正常输入啊。
请输入节点数:3
请输入第1个节点的数据:1
请输入第2个节点的数据:2
请输入第3个节点的数据:3
数据输入完毕
1 2 3
输出完毕
Process returned 0 (0x0)   execution time : 6.125 s
Press any key to continue.

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


我们都在路上。。。。。
2011-10-19 12:00
kd83kdi93
Rank: 2
等 级:论坛游民
帖 子:65
专家分:52
注 册:2011-9-18
得分:0 
回复 2楼 hellovfp
为什么是pMid!=NULL  而不是 pMid->pNext!=NULL呢?
2011-10-19 12:17
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
得分:0 
仔细看书,链表遍历是如何判定结束条件的。

我们都在路上。。。。。
2011-10-19 13:17



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




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

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