比较总结线性表的几种主要存储结果

一、顺序表

顺序表是用一段地址连续的存储单元依次存储线性表的数据元素,通常用一维数组来实现。顺序表是线性表的顺序存储结构,是随机存取结构。

优点:无需为表示表中元素之间的逻辑关系而增加额外的存储空间;随机存取。

缺点:插入和删除需要移动大量元素;表的容量难以确定;造成存储空间的“碎片”。

二、单链表

单链表是用一组任意的存储单元存放线性表的元素,元素的逻辑次序和物理次序不一定相同,这组存储单元可以连续也可以不连续,甚至可以零散分布在内存中的任意位置。单链表中数据元素之间的逻辑关系用指针表示,单链表是顺序存取结构。

优点:删除和插入不需要移动元素;链表不需要为线性表预分配空间,其中的元素没有限制。

缺点:指针的结构性开销占去整个结点的大部分;只能朝一个方向访问元素,不能随机存取。

三、循环链表

循环链表是是在单链表中,将终端结点的指针域由空指针改为指向头结点,就使整个单链表形成一个环,通常采用尾指针来标识。

优点:没有增加任何存储量,可以从链表中的任一结点出发,增加了链表操作的灵活性。

缺点:循环链表没有明显的尾端,可能会使循环链表的处理操作进入死循环。

四、双链表

双链表是在单链表的每个结点中再设置一个指向其前驱结点的指针域,即prior。双链表是一种对称结构,便于实现各种操作。

优点:可以从链表中的任一结点出发,增加了链表操作的灵活性,且可找到前驱结点。

缺点:每个结点需要存储前驱指针域,增加了指针的结构性开销。

五、静态链表

静态链表是用数组来描述单链表,用数组元素的下标来模拟单链表的指针(称为游标)。即data域存放数据元素,next域存放该元素的后继元素所在的数组下标。

优点:插入和删除时,只需修改游标,不需要移动表中的元素。

缺点:没有解决连续存储分配带来的表长难以确定的问题。

六、间接寻址

间接寻址是将数组和指针结合起来的一种方法,将数组中存储数据元素的单元改为存储指向该元素的指针。

优点:保持了顺序表随机存取的优点;改进了插入和删除操作的时间性能。

缺点:没有解决连续存储分配带来的表长难以确定的问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值