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

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


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值