#include<cstdio>
#include<cstdlib>
struct student{
long no;//学号
char name[20];//姓名
char addr[30];//地址
struct student *next;
};
typedef struct student LIST;
/*链表五步法
1.申请内存
2.内存next=NULL
3.与前一个节点链接prev->next=cur
4.写入数据
5.重复1~4的步骤 */
LIST* Create_LinkList(int n)
{
LIST *head, *prev, *cur;
head=NULL;
for(int i=0; i<n; i++)
{
cur=(LIST*)malloc(sizeof(LIST));//1.申请内存
cur->next=NULL;//2.内存next=NULL
if(head==NULL)//如果当前为第一个节点
head=cur;//创建头结点
else
prev->next=cur;//如果当前不是第一个节点,3.与前一个节点链接prev->next=cur
prev=cur;//将当前节点设置为前一个节点
scanf("%d %s %s", &cur->no, &cur->name, &cur->addr);//4.写入数据 5.for循环到下一个
}
return head;
}
void Display_LinkList(LIST *h)
{
LIST *p=h;
while(p!=NULL)
{
printf("%d %s %s\n", p->no, p->name, p->addr);//输入数据
p=p->next;
}
}
int main()
{
int n;
LIST *head;
scanf("%d", &n);
head=Create_LinkList( n);
printf("学号 姓名 地址\n");
Display_LinkList(head);
return 0;
}