链式结构
知识体系:
链式结构的特性:
- 1.有唯一的第一个数据元素和最后一个数据元素;
- 2.除第一个数据元素和最后一个数据元素外,其他数据元素都有前驱和后续;
- 3.第一个数据元素只有后续,最后一个数据元素只有前驱。
在链表的设计中,加入一个头结点会使得实现链表的插入、删除等操作的代码更新简洁。
一、单向链表
单向链表的特性:
- 1.有唯一的头结点和尾结点;
- 2.除头结点和尾结点外,其他结点都有前驱和后续;
- 3.头结点只有后续,尾结点只有前驱;
- 4.通过当前结点可以找到下一个结点,不能找到上一个结点。
二、单向循环链表
单向循环链表的特性:
- 1.有唯一的头结点和尾结点;
- 2.除头结点外,其他结点都有前驱和后续;
- 3.头结点只有后续;
- 4.通过当前结点可以找到下一个结点,不能找到上一个结点;
- 5.通过尾结点可以找到头结点。
三、双向链表
- 1.有唯一的头结点和尾结点;
- 2.除头结点和尾结点外,其他结点都有前驱和后续;
- 3.头结点只有后续,尾结点只有前驱;
- 4.通过当前结点可以找到前驱结点,也可以找到后续结点。
四、双向循环链表
双向循环链表的特性:
- 1.有唯一的头结点和尾结点;
- 2.所有结点都有前驱和后续;
- 3.头结点的前驱结点是尾结点,尾结点的后续结点是头结点;
- 4.通过当前结点可以找到前驱结点,也可以找到后续结点。
总结
单向链表、单向循环链表、双向链表和双向循环链表有很多共同的特性,也有自己独有的特点,在日常开发中解决问题时,可以根据实际情况选择合适的数据结构来解决问题。