标题:关于链表的创建问题
只看楼主
不二庚庚
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2011-4-1
结帖率:0
已结贴  问题点数:20 回复次数:1 
关于链表的创建问题
程序代码:
typedef struct Lnode {
    student elemt;
    struct Lnode * next;
}Lnode,*Linkedlist;//这是定义的节点//创建节点函数

//创建函数
int createlist(Linkedlist* l,int n){
     /*
     这里需要思考,这个为什么不能是Linkedlist????

     */

    //新建一个链表指针,作为不断生成的链表的首节点
   Linkedlist m=(Linkedlist) malloc (sizeof(Lnode));
    if(!m){
        printf("链表创建失败\n");       
    }else{
        m->next=NULL;  
        //先建立一个带头结点的链表
        //逆序建立链表
        int r=1;
        //生成新的节点
        Linkedlist p;
        for(int i=n;i>0;--i){
            //p 作为工作指针
            p=(Linkedlist) malloc (sizeof(Lnode));
            //生成新节点
            printf("请输入第%d个学生的姓名:",r);
            scanf("%s",p->elemt.name);
            printf("请输入第 %d 个学生的学号:",r);
            scanf("%d",&p->elemt.num);
            printf("请输入第 %d 个学生的成绩:",r);
            scanf("%f",&p->elemt.score);
            //插入到表头后面
            p->next=m->next;
           
            m->next=p;
            r++;
        }
       
    }
     *l=m;
     return 1;
}

如我上面标出的地方,为什么不能用这个为什么不能是Linkedlist,而必须要使用这个为什么不能是Linkedlist的指针呢?在创建的时候不是只是修改了节点的值吗,本身这个为什么不能是Linkedlist就是一个指针啊,照理说应该是用Linkedlist就可以了啊!
搜索更多相关主题的帖子: next 函数 
2012-03-08 15:40
davidlv419
Rank: 2
等 级:论坛游民
帖 子:24
专家分:69
注 册:2009-4-30
得分:20 
回复 楼主 不二庚庚
结构体定义格式不标准
typedef struct Lnode {
    student elemt;
    struct Lnode * next;
}Lnode;
Lnode *Linkedlist;

------------------------------------
或者
struct Lnode {
    student elemt;
    struct Lnode * next;
}Lnode,*Linkedlist;
2012-03-08 15:51



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




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

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