#include "stdio.h"
#include "stdlib.h"
typedef struct employee
{
int no;
char *name;
}emp;
typedef struct node
{
emp data;
struct node *next;
}SLink;
SLink *initailList()
{
SLink *p=(SLink *)malloc(sizeof(SLink));
p->data.no=0;
p->data.name="opop";
p->next=NULL;
return p;
}
//插入新结点
void addNewNoteAtStart(SLink * &L)
{
SLink *t=(SLink *)malloc(sizeof(SLink));
printf("请输入工号:");
scanf("%d",&t->data.no);
printf("请输入姓名:");
scanf("%s",t->data.name);
t->next=NULL;
t->next=L;
L=t;
}
//结点的遍历,将所有结点内容输出来
void showAll(SLink *H)
{
SLink *t;
t=H;
while(t!=NULL)
{
printf("\n工号:%d,姓名:%s\n",t->data.no,t->data.name);
t=t->next;
}
}
int main()
{
SLink *list;
list=initailList();
for(int i=0;i<3;i++)
addNewNoteAtStart(list);
showAll(list);
}
那请问应该怎么改,让他能够循环输入运行呀
追答添加节点函数改成这样:
void addNewNoteAtStart(SLink * &L)
{
SLink *t=(SLink *)malloc(sizeof(SLink));
t->data.name = (char *)malloc(255);
printf("请输入工号:");
scanf("%d",&t->data.no);
printf("请输入姓名:");
scanf("%s",t->data.name);
t->next=NULL;
t->next=L;
L=t;
}