链表的基本操作,包括创办,输出链表
链表的基本操作,包括创建,输出链表。
<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>
版权声明:本文为博主原创文章,未经博主允许不得转载。