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

上一篇 下一篇
单链表

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

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

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

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

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

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

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

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

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

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

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


相关推荐
wuyk5558 小时前
第2章:六步换相原理全解+STM32工程实战
c语言·开发语言·stm32·单片机·嵌入式硬件
Doraemomo8 小时前
数据结构-环形链表
java·数据结构·链表
爱跳舞的烤冷面12 小时前
自学嵌入式第22天(数据结构——哈希)
数据结构·算法·哈希算法
C++ 老炮儿的技术栈14 小时前
从 Qt Designer 属性编辑器的层级可以看到继承链
c语言·数据库·c++·qt·sqlite·visual studio
MC皮蛋侠客14 小时前
Redis 系列(一):全景与最小闭环——从 `SET` 命令到内存数据结构
数据结构·数据库·redis
疯狂打码的少年14 小时前
【数据结构】队列:定义、顺序队列与链式队列
数据结构·笔记
蔬菜_15 小时前
前端转全栈-day5(数组、list、set)
java·前端·数据结构·list
水饺编程15 小时前
AT&T 汇编语言学习笔记开篇语
c语言·汇编·c++
wuminyu16 小时前
虚拟线程底层ForkJoinPool的工作窃取算法机制
java·linux·c语言·jvm·c++
CV-X.WANG16 小时前
从零理解 ORB-SLAM3(二):系统全景、执行上下文与核心数据结构
数据结构