1、*实验11链表一、实验目的(1)理解链表的概念。(2)掌握结构体、指针在链表中的运用。(3)掌握链表的常用操作,包括创建、显示、添加等。二、实验内容[题目1098:链表结点的插入]有结构体类型定义,struct student{ long num;/*学号*/ int score;/*成绩*/ struct student *next;/*指针*/};程序首先完成创建两个链表,要求补充完成按学号顺序插入链表结点的函数:1struct student *insert(struct student *head, st
3、}return(head);}[题目1099:链表的合并]有结构体类型定义,struct student{ long num;/*学号*/ int score;/*成绩*/ struct student *next;/*指针*/};程序首先完成创建两个链表,要求补充完成实现将第二个链表合并到第一个链表未尾的函数。struct student *merge(struct student *head, struct student *head2){ structstudent*p1;p1=head;if(head==
4、NULL)returnhead2;while(p1->next!=NULL)p1=p1->next;p1->next=head2;return(head);}[题目1104:链表的倒序]有结构体类型定义,struct student{ long num;/*学号*/ int score;/*成绩*/ struct student *next;/*指针*/};程序首先完成程序创建一个链表,要求补充完成实现将链表中各结点变为倒序排列的函数。struct student *reverse(struct student
5、*head){structstudent*p1,*p2,*p3;p2=head;p3=head->next;do{p1=p2;p2=p3;p3=p2->next;p2->next=p1;}while(p3!=NULL);head->next=NULL;return(p2);}[题目1101:链表的排序]有结构体类型定义,struct student{ long num;/*学号*/ int score;/*成绩*/ struct student *next;/*指针*/};程序首先完成程序创建一个链表,要求补充完