1.逻辑结构上来看
顺序表与链表都属于线性表,都是线性结构。
2.存储结构上来看
顺序表:
(1)优点:支持随机存取,存储密度高。
(2)缺点:大片连续空间分配不方便,改变容量不方便。
链表:
(1)优点:离散的小空间分配方便,改变容量方便。
(2)缺点:不可随机存取,存储密度低。
3.运算(即基本操作)
3.1创
顺序表:预分配大量空间(静态分配),malloc/free(动态分配)
链表:分配头结点,或只声明头指针,后续分配空间也可。
3.2销
顺序表:静态分配系统自动回收,动态分配手动free()。
链表:一次删除各个结点free().
3.3增、删
顺序表:前移或后移结点,时间代价高。
链表:只需修改指针,时间开销主要用于查找元素,但比移动元素快不少。
3.4改、查
顺序表:按位查找时间复杂度为O(1),按值查找为O(n),有序(logn).
链表:按位、按值都是O(n).