<span style="font-size:18px;">#include<stdio.h>
#include<stdlib.h>
struct student /*定义结点*/
{
long no;
char name[20];
char addr[30];
struct student *next;/*指向结构体指针*/
};
typedef struct student list;//将类型重新命名为list
list *CreateList() //创建链表的函数定义
{
list *h,*prev,*cur; //定义指向list的指针变量
int i,n;
h=NULL; //初始时头指针为空
printf("输入结点个数: \n");
scanf("%d",&n);
for(i=0;i<n;i++)
{
cur=(list *)malloc(sizeof(list)); //动态生成一个结点空间
cur->next=NULL; //将cur的next置为NULL
if(h==NULL)
h=cur;
else
prev->next=cur; //令链表最后一个节点的next指向cur
scanf("%d %s %s",&cur->no,cur->name,cur->addr);//为cur指向的结点输入数据
prev=cur;
}
return h; //返回头指针h
}
void DispList(list *h)
{
list *p=h; //定义指针p并指向链表的第一个结点
while(p!=NULL)
{
printf("%d %s %s\n",p->no,p->name,p->addr);
p=p->next;
}
}
list *CreateList();
void DispList(list *h);
int main()
{
list *head;
head=CreateList();
printf("学号 姓名 地址\n");
DispList(head);
}</span>
链表的基本操作,包括创建,输出链表。
最新推荐文章于 2024-04-21 21:17:15 发布