顺序存储结构线性表的最大问题
插入和删除须要移动大量的元素!node
- 为了表示每一个元素与其直接后继元素之间的逻辑关系;数据元素除了存储自己的信息外,还要存储其直接后继的信息。
ai
和 ai+1
是线性表中的两个相邻数据元素;在物理内存中无相邻关系。spa
基于链式存储结构的线性表中,每一个节点都包含数据域和指针域3d
- 数据域:存储数据元素自己
- 指针域:存储相邻节点的地址
顺序表指针
- 基于顺序存储结构的线性表
链表code
基于链式存储结构的线性表blog
- 单链表:每一个节点只包含直接后继的地址信息
- 循环链表:单链表中的最后一个节点的直接后继为第一个节点
- 双线链表:单链表中的节点包含直接前驱和后继的地址信息
单链表
循环链表
双线链表
头节点内存
- 链表中的辅助节点,包含指向第一个数据元素的指针
数据节点it
- 链表中表明数据元素的节点,表现形式为:[数据元素 | 地址]
尾节点class
- 链表中的最后一个数据节点,包含的地址信息为空
头节点在单链表的意义:
辅助数据元素的定位,方便插入和删除操做;所以,头节点不存储实际的数据元素
。软件
node->value = e; node->next = current->next; current->next = node;
toDel = current->next; current->next = toDel->next; delete toDel;
- 链表中的数据元素在物理内存中无相邻关系
- 链表中的节点都包含数据域和指针域
- 头节点用于辅助数据元素的定位,方便插入和删除操做
- 插入和删除操做须要保证链表的完成性
以上内容整理于狄泰软件学院系列课程,请你们保护原创!