顺序表VS链表
逻辑结构:都属于线性表,都是线性结构
存储结构:
-
顺序表
- 优点:支持随机存取、存储密度高
- 缺点:大片连续空间分配不方便,改变容量不方便
-
链表
- 优点:离散的小空间分配方便,改变容量方便
- 缺点:不可随机存取,存储密度低
基本操作
-
创建
-
顺序表
-
需要预分配大片连续空间。若分配空间过小,则之后不方便拓展容量,若分配空间过大,则浪费内存资源
-
静态分配:静态数组(容量不可改变)
动态分配:动态数组(malloc、free)(容量可改变,但需要移动大量元素,时间代价高)
-
-
链表
- 只需分配一个头结点(也可以不要头结点,只声明一个头指针),之后方便拓展
-
-
销毁
- 顺序表
- 修改length=0(在逻辑上变成了空表)
- 静态分配:静态数组。系统自动回收空间
- 修改length=0(在逻辑上变成了空表)
- 顺序表