第三天笔记
一、单向循环链表的原理与应用
思考:对于单向链表而言,想要遍历链表,则必须从链表的首结点开始进行遍历,请问有没有更简单的方案实现链表中的数据的增删改查?
回答:是有的,可以使用单向循环的链表进行设计,单向循环的链表的使用规则和普通的单向链表没有较大的区别,需要注意:单向循环链表的尾结点的指针域中必须指向链表的首结点的地址,由于带头结点的单向循环链表更加容易进行管理,所以教学以带头结点的为例:
上图所示的就是一个典型的单向循环链表的结构,可以发现单向循环链表的结构属于环形结构,链表中的最后一个结点的指针域中存储的是链表的第一个结点的地址。
为了管理单向循环链表,需要构造头结点的数据类型以及构造有效结点的数据类型,如下:
- 创建一个空链表,由于是使用头结点,所以就需要申请头结点的堆内存并初始化即可!
- 创建新结点,为新结点申请堆内存并对新结点的数据域和指针域进行初始化,操作如下:
- 根据情况把新结点插入到链表中,此时可以分为尾部插入、头部插入、指定位置插入:
- 头插
- 尾插
- 中插
- 根据情况可以从链表中删除某结点,此时可以分为尾部删除、头部删除、指定元素删除:
- 头删
- 尾删
- 中删
二、练习
练习:
练习:
练习:
练习:
练习:
练习:
练习: