建立一个三个结点的链表,存放学生数据。为简单起见,假定学生数据结构中只有学号和年龄两项。编写一个建立单向链表的函数 creat,并实现单项链表的建立。(选作:遍历和删除)
#include<stdio.h>
#include<malloc.h>
typedef struct LNode
{
char id[20];
int age;
struct LNode *next; //指向后继结点
} LinkNode;
void Create(LinkNode *&L)
//尾插法建立单链表
{
LinkNode *s,*r;
L=(LinkNode *)malloc(sizeof(LinkNode)); //创建头结点
L->next=NULL;
r=L; //r始终指向终端结点,开始时指向头结点
for (int i=0;i<3;i++)
{
s=(LinkNode *)malloc(sizeof(LinkNode));//创建新结点s
scanf("%s %d",s->id,&s->age);
r->next=s; //将结点s插入结点r之后
r=s;
}
r->next=NULL; //终端结点next域置为NULL
}
void DispList(LinkNode *L)
{
LinkNode *p=L->next;
while (p!=NULL)
{ printf("%s %d\n ",p->id,p->age);
p=p->next;
}
printf("\n");
}
int main()
{
LinkNode *L;
CreateListR(L);
DispList(L);
return 0;
}