1.5 顺序表和链表的比较与选择依据

顺序表和链表的比较:
顺序存储的优点:
1.方法简单,各种高级语言中都有数组,容易实现。
2.不用为表示结点间的逻辑关系而增加额外的存储开销。
3.顺序表具有按元素序号随机访问的特点。
缺点:
1.在顺序表中做插入删除操作时,平均移动大约表中
一半的元素,因此对n较大时的顺序表效率低。
2.需要预先分配足够大的存储空间,估计过大,可能会
导致顺序表后部大量闲置; 预先分配过小,又会造成溢出。
链表的优缺点恰好与顺序表相反。


如何选取存储结构?
1.基于存储的考虑;
顺序表在程序执行之前必须明确规定它的存储规模,也就是说事先对"MAXSIZE"
要有合适的设定,过大造成浪费,过小造成溢出。可见对线性表的长度或规模
难以估计时,不宜采用顺序表。
链表不用事先估计存储规模,但链表的存储密度较低。显然链式存储结构的存
储密度是小于1的。
2.基于运算的考虑;
在顺序表中按序号访问ai的时间性能是O(1),而链表中按序号访问的时间性
能是O(n),所以如果经常做的运算是按序号访问数据元素,显然顺序表优于
链表; 而在顺序表中做插入、删除时平均移动表中一半的元素,当数据元素的
信息较大且表较长时,这一点是不应忽视的,在链表中做插入、删除操作显然
优于前者。
3.基于环境的考虑;
顺序表容易实现,链表的操作是基于指针的,相对来讲前者简单些,也是用户
考虑的一个因素。
总之,两种存储结构各有长短,选择哪一种由实际问题的主要因素决定。
通常,"较稳定"的线性表(访问操作)选择顺序存储结构,而频繁做插入删除的即动态
性较强的线性表宜选择链式存储。

猜你喜欢

转载自blog.csdn.net/l158943041/article/details/80549017
1.5