赞
踩
顺序表和链表都是线性结构。
顺序存储
优点:
缺点:
链式存储
优点:
缺点:
6个基本操作:创销增删改查
顺序表 | 链表 | |
---|---|---|
数据弹性(可扩容) | √ | |
增、删 | √ | |
查找 | √ |
顺序表:
需要预分配大片连续空间。若分配空间过小,则之后不方便拓展容量;若分配空间过大,则浪费内存资源。
链表:
只需分配一个头结点(也可以不要头结点,只声明一个头指针),之后方便拓展。
顺序表:
链表:
依次删除各个结点(free)。
顺序表:
插入/删除元素要将后续元素都后移/前移。
时间复杂度O(n),时间开销主要来自移动元素。
链表:
插入/删除元素只需修改指针即可。
时间复杂度O(n),时间开销主要来自查找目标元素。
若元素占用空间很大,那么移动元素花费的时间要比查找元素花费是时间代价更大。
顺序表:
按位查找:使用顺序存储,每个数据元素大小相同,所以可以随机访问,即可以在**O(1)**时间内找到第i个元素。
按值查找:O(n)。若表内元素有序,可在 O(log_2n) 时间内找到。
链表:
按位查找:由于单链表每个节点只存储了指向下一个节点的指针,只能顺序存储,不可随机存储,所以访问节点时需要从头指针开始依次遍历访问,直到找到需要的节点O(n)。
按值查找:只能遍历O(n)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。