(14)王道数据结构-顺序表和链表比较

逻辑结构

都属于线性表,都是线性结构

存储结构

相同点:
都属于线性表,都是线性结构

顺序表

优点:

支持随机存取、存储密度高

缺点:

大片连续空间分配不方便,改变容量不方便

链表

优点:

离散的小空间分配方便,改变容量方便

缺点

不可随机存取,存储密度低

基本操作

创建

顺序表

需要预先分配大片连续空间,分配空间过小不好扩展,过大浪费空间。容量不可改变

链表

只需要分配一个头结点(或头指针)之后方便扩展。容量可以改变,但需要移动大量元素,时间代价高

销毁

顺序表

修改lengh=0,使用静态数组系统自动回收空间。

链表

依次删除各个节点(free)使用的是动态数组。需要特别注意的是malloc和free必须成对出现,使用的是stdllib包

增删

顺序表

插入/删除元素要将后续元素都后移/前移,时间复杂度O(n),时间开销主要来自移动元素。如果数据元素很大,则移动的时间代价很高

链表

插入/删除元素只需要修改指针即可,时间复杂度O(n),时间开销主要来自查找目标元素。查找元素的时间代价更低

查找

顺序表

按位查找:O(1)
按值查找:O(n),若表内元素有序,可在O(log2n)时间内找到

链表

按位查找:O(n)
按值查找:O(n)

选择

表长难以预估、经常需要增加/删除元素选择链表
表长可以预估、查询(搜索)操作较多选择顺序表


(14)王道数据结构-顺序表和链表比较
https://www.eldpepar.com/iecore/47036/
作者
EldPepar
发布于
2022年7月27日
许可协议