关于链表的创建问题
程序代码: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就可以了啊!







