首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

链表有关问题?

2012-02-22 
链表问题?????为输入学生的名字创建一个链表问题!!!typedefstructnode{charname[20]structnode*link}stu

链表问题?????
为输入学生的名字创建一个链表问题!!!
typedef   struct   node
{
        char   name[20];
        struct   node   *link;
}stud;

stud   *   creat()
{
        stud   *p,*h,*s;
        int   i,n;
        puts( "\nPlease   input   the   number   of   linklist: ");
        scanf( "%d ",&n);
        if((h=(stud   *)malloc(sizeof(stud)))==NULL)h=NULL代表没有赋值吗?????
        {
                printf( "cannot   find   space! ");
                exit(0);
        }
        h-> name[0]= '\0 ';只是赋值给name[0]= '\0 '吗?那其他的呢?
        h-> link=NULL;
        p=h;//   h头指针赋值给p,主要有什么作用呢???
        for(i=0;i <n;i++)
        {
                if((s=   (stud   *)   malloc(sizeof(stud)))==NULL)
                {
                        printf( "cannot   find   space! ");
                        exit(0);
                }
                p-> link=s;//s赋值给p-> link干什么用???????
        printf( "please   input   %d   student 's   name:   ",i+1);
                scanf( "%s ",s-> name);
                s-> link=NULL;
                p=s;//s头指针赋值给p干什么用呢?
        }

        return(h);
}

[解决办法]
1。==NULL代表分配空间失败
2。 h-> name[0]= '\0 ';//h是头结点,这只是初始化
h-> link=NULL;
p=h;
3。p是一个指针增量,现在指向头结点。。。
4。 p-> link=s;//指针增量(现在是头结点)的下一个节点为s
5。 p=s;//指针增量指向了第一个节点。

热点排行