玩转《数据结构》顺序表和链表的比较

1.存取方式

顺序表可以顺序存取,也可以随机存取,链表只能从表头顺序存取元素

2.逻辑结构和物理结构

采用顺序存储时,逻辑上相邻的元素,对应的物理存储位置也相邻。采用链式存储时则不一定,对应的逻辑关系是用指针链来表示的

3.空间分配

顺序存储静态分配时,一旦存储空间装满就不能扩充,预先分配过大,可能导致顺序表后部大量闲置。动态存储分配时,虽然存储空间可以扩充,但是需要移动大量元素,而且如果内存中没有更大块的连续存储空间,则会分配失败。链式存储的结点空间只在需要时申请分配,只要内存有空间就可以分配,操作灵活、高效

4.怎样选取存储结构

1)基于存储的考虑

  • 难以估计线性表的长度或存储规模时,不宜采用顺序表;链表不用事先估计存储规模,但链表的存储密度较低

2)基于运算的考虑

  • 按序号访问ai顺序表更占优势,是O(1)的时间复杂度,链表是O(n)。顺序表的插入、删除平均需要移动一半的元素;在链表中进行插入、删除时,虽然也要找到插入位置,但主要是比较操作,这个角度考虑显然后者优于前者

3)基于环境的考虑

  • 顺序表容易实现,任何高级语言都有数组类型;链表的操作是基于指针的,相对来说,前者实现较为简单
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值