嵌入式 - 数据结构与算法:(1-4)数据结构 - 单链表的两个核心缺点(引入循环/双向链表)

上一篇 下一篇
单链表

单链表的两个核心缺点(引入循环/双向链表)

单链表、循环链表和双向链表的主要区别源于单链表的两个核心缺点:

  1. 只能单向遍历,无法反向访问

    单链表每个节点只有指向后继的指针,若要访问前驱节点,必须从头重新遍历,效率低。

    双向链表 通过增加一个指向前驱的指针(prev),支持前后双向遍历,插入/删除时可直接定位前驱,提升操作效率。

  2. 尾部与头部割裂,无法自然循环访问

    单链表尾节点指向 NULL,若需从尾回到头(如约瑟夫问题、轮询调度),必须额外判断并跳转。

    循环链表 将尾节点的 next 指回头节点(或首元素),形成闭环,任意位置均可遍历整个链表,简化循环场景逻辑。

双向循环链表 可以结合双向链表和循环链表两者的优势,但空间开销更大。

实际应用中,单链表结构简单、内存省,适合只在头部/已知位置操作的场景;

而需要频繁反向访问或循环处理时,则选用双向或循环结构。


相关推荐
不会就选b16 分钟前
数据结构之顺序表
数据结构
z落落32 分钟前
C# Hashtable 哈希表+SortedList 有序键值对集合
数据结构·散列表
Brilliantwxx36 分钟前
【C++】 深入理解红黑树:实现与原理全解
数据结构·c++·笔记·算法·青少年编程·红黑树
Dlrb12111 小时前
数据结构-排序算法
数据结构·算法·排序算法·插入排序·堆排序·希尔排序·快速排序
过期动态1 小时前
【LeetCode 热题 100】无重复字符的最长子串
java·数据结构·spring boot·算法·leetcode·职场和发展
莫等闲-2 小时前
leetcode42. 接雨水 leetcode84.柱状图中最大的矩形
数据结构·c++·算法·leetcode
爱吃生蚝的于勒2 小时前
QT开发第二章——信号和槽
c语言·开发语言·c++·qt
浅念-2 小时前
LeetCode 记忆化搜索 刷题总结
数据结构·算法·leetcode·职场和发展·深度优先·dfs
菜菜的顾清寒2 小时前
力扣HOT100(44)对称二叉树
数据结构·算法·leetcode
六bring个六2 小时前
c/c++面试踩坑笔记
c语言·数据结构·c++