总结 线性表

前几课学习了线性表,现在进行一次阶段性总结。

线性表是一种非常基本的数据结构,它包含有限个数据元素且数据元素是相同类型的。

其中非空的线性表或者线性结构特点:

(1) 存在唯一的一个被称作“第一个”的数据元素,表头元素;

(2) 存在唯一的一个被称作“最后一个”的数据元素。表位元素;

(3) 除第一个之外,结构中的每个数据元素均只有一个前驱;

(4) 除最后一个外,结构中的每个数据元素均只有一个后继。

顺序表

当线性表的顺序表示指用一组地址连续的存储单元依存储线性表的数据元素,这种存储结构的线性表为顺序表。顺序表的特点是逻辑上相邻的数据元素,其物理位置也是相邻的。

在顺序表中因为表的长度是一种属性,所以某些操作会很容易实现,可以通过返回length返回值求表长,取值这些算法的平均时间复杂度为O(1),然而顺序结构的插入需要就行大量的元素移动,如果在a(k)位置插入元素,a(k+1:i)的元素都要后移,效率底下,还涉及到扩容问题。顺序表的查找算法,插入算法,删除算法的平均时间复杂度O(n),这些问题,都可以通过线性表的另一种表现形式——链式存储来解决。

链表

线性表链式存储结构的特点是:用一组任意的存储单元存储线性表的数据元素。在单链表中取值算法,查找算法,插入算法,删除算法的时间复杂度O(n)。

单链表的存储单元是任意的,且扩容方便但存放元素时需要另外开辟一个指针域的空间。               

顺序表和链表的比较

1.空间性能的比较

顺序表的存储空间需要预先分配,容易造成存储空间浪费或溢出,顺序表的存储密度为100%,利用率高;链表不需要预先分配,但链表的存储密度因为需要存储指向节点的指针使用存储密度小。

所以在线性表长度变化不大,为了节省存储空间宜用顺序表;在线性表的长度变化大时宜用链表。

2.时间性能的比较

顺序表在存取元素时都可以在O(1)时间内存取元素;而链表的时间复杂度为O(n),取值效率低。在插入和删除时确定位置后链表只需要修改指针,无需移动数据,时间复杂度为O(1);而顺序表需要移动节点。

所以在存取频繁时多用顺序表;在插入和删除频繁时多用链表。

结尾

       在这几周的学习中,我较为熟练地掌握了顺序表和链表的查找,插入和删除算法。线性表是数据结构中最基本且最常用的一种线性结构,同时也是后面内容的基础,需要牢牢掌握。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值