一.双向链表的结点类型定义
1.定义学生的基本信息姓名name[20],学号number,年龄age,分数mark以及两个指针域左链域llink和右链域rlink.,我们使有指针指向下一个结点,使左指针上一个结点,使头结点的左指针指向尾节点,构成双向循环链表。
二.双向循环链表的创建
1.首先定义一个表头phead,左右链域指针分别指向空。
2.再定义两个指针pnew,pend分别代表目前的一个指针和尾指针。
3.使尾指针指向头指针
4.定义学生个数n,录入所有学生的信息.
5.每录入一个学生构成单链表直到最后一个学生信息录入首尾指向构成循环链表
三.输出函数在while循环中逐个输出信息
四.查找函数,定义一个指针x,指向将要查找的学生姓名的首地址,在while循环中将临时指针p遍历利用strcmp函数判断是否存在要查找的学生,若有则输出其信息,反之则没有查到该数。
五,头部结点插入函数,首先定义一个结构体,录入新学生的所有信息,将新的pnew插入到头部,使其右指针指向第一个指针的右指针域,头指针的右指针指向新的结点,新指针的左指针指向头结点,第二个节点的左链域指向新结点。
六删除结点函数,首先根据while循环找到要删除的结点,再将删除节点的前一个结点右指针指向下下个结点,再将删除节点的下一个结点指向上上一个节点的。
在这里插入图片描述
七修改函数,同样利用for循环找到要修改的结点,将其信息进行重新输入。
八.主函数