数据结构回顾——几类线性表对比与总结


1 前言

  前面文章描述了顺序表、单链表、双向链表、循环链表、静态链表等几类线性表的含义、特点、适用场景、基本操作以及C语言的实现过程。通过对比分析,这几种线性表,都具有固有的特点、优缺点,也就决定了其适用于不同的应用场景;同时一部分线性表也具有综合性特点,使得其能够应用于更广场景。各类线性表最具代表性的特点归纳为:

  • 顺序表,高效的查找操作
  • 单链表,高效的插入/删除操作
  • 双向链表,双向遍历,遍历效率高
  • 循环链表,任一节点开始,可以遍历整个链表,遍历灵活性高
  • 静态链表,综合了顺序表和链表特点,既有高效的查找操作,又能快速增删元素节点

  以下,我们把几种线性表的特点和适用场景(参考)罗列为一个表格,以方便对比。更详细的描述,参考本文末尾的相关文章链接。


2 线性表特点比较

存储地址 存储空间 存储密度 存取结构 空间长度 查找 删除/插入
顺序表 连续 静态 =1 顺序/随机 定长 O(1) O(n)
单链表 非连续 动态 <1 顺序 动态增加 O(n) O(1)
双向链表 非连续 动态 <1 顺序 动态增加 O(n) O(1)
循环链表 非连续 动态 <1 顺序 动态增加 O(n) O(1)
静态链表 非连续 静态 <1 顺序 定长 O(1) O(1)

3 线性表适用场景参考

应用场景 线性表选择
固定表长度 顺序表/静态链表
频繁查找操作 顺序表/静态链表
频繁插入/删除操作 链表
复用缓冲队列 循环链表
双向遍历 双向链表
兼顾查找/插入/删除效率 静态链表
约瑟夫环问题 循环链表
LRU 缓存淘汰算法 循环链表

4 文章链接

【1】数据结构回顾——线性表概念(顺序表与链表的区别)

【2】数据结构回顾——顺序表操作详解及C语言实现

【3】数据结构回顾——单链表操作详解及C语言实现

【4】数据结构回顾——双向链表操作详解及C语言实现

【5】数据结构回顾——循环链表操作详解及C语言实现

【6】数据结构回顾——静态链表操作详解及C语言实现

猜你喜欢

转载自blog.csdn.net/qq_20553613/article/details/108267875