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