链表的基本操作,包括创建,输出链表。

来源:互联网 发布:淘宝千纸鹤什么档次 编辑:程序博客网 时间:2024/06/14 02:18
<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置为NULLif(h==NULL)h=cur;elseprev->next=cur; //令链表最后一个节点的next指向curscanf("%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>

0 0