数据结构-线性表

  • 线性表的概念及运算
  • 线性表的顺序存储
线性表

线性表(Linear List)是由n(n≥)个数据元素a1,a2,…,an组成的线性的有限序列。

线性表的逻辑结构:线性结构
  • 除第一个元素外,其他每一个元素有且仅有一个直接前驱。
  • 除最后一个元素外,其他每一个元素有且仅有一个直接后继。

线性表的相关术语

  • 数据(Data): 是客观事物的符号表示,是所有能输入到计算机中并被计算机程序处理的符号的总称。
  • 数据元素(Data Element): 是数据的基本单位,也称为元素、记录等,用于完整地描述一个对象。
  • 数据项(Data Item): 是组成数据元素的、有独立含义的、不可分割的最小单位。
  • 数据对象(Data Object): 是性质相同的数据元素的集合,是数据的一个子集。
线性表的特点
  • 同一性: 线性表由同类数据元素组成,每一个必须属于同一数据对象。
  • 有穷性: 线性表由有限个数据元素组成,表长
    就是表中数据元素的个数。
  • 有序性: 线性表中相邻元素之间存在着序偶关系<ai,ai+1>。
线性表的抽象数据类型定义

在这里插入图片描述

线性表的顺序存储-顺序表

指用一组地址连续的存储单元依次存储线性表中的各个元素,使得线性表中在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中。

  • 即通过数据元素物理存储的相邻关系来反映数据元素之间逻辑上的相邻关系。
  • 采用顺序存储结构的线性表通常称为顺序表。
  • 假设线性表中有n个元素,每个元素占k个单元,第一个元素的地址为loc(a1),则可以计算出第i个元素的地址loc(ai):
  •  	loc(a~i~)=loc(a~1~)+(i-1)×k        (其中loc(~1~)称为基址)
    
顺序表存储示意图

顺序表存储示意图

顺序存储结构的优缺点
优点
  • 无需为表示结点间的逻辑关系而增加额外的存储空间,存储密度高
  • 可方便地随机存取表中的任一元素
缺点
  • 插入或删除运算不方便,除表尾的位置外,在表的其它位置上进行插入或删除操作都必须移动大量的元素,效率较低
  • 由于顺序表要求占用连续的存储空间,存储分配只能预先进行静态分配。因此当表长变化较大时,难以事先确定合适的存储规模

//实现代码见下一篇文章

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
线性表是一种常见的数据结构,它表示具有相同数据类型的一组元素的有序序列。线性表中的元素之间存在一种顺序关系,每个元素都有一个前驱和一个后继(除了第一个元素没有前驱,最后一个元素没有后继)。线性表可以用顺序存储结构或链式存储结构实现。 在顺序存储结构中,线性表元素按照顺序存储在连续的内存空间中,可以通过元素的下标来访问和操作元素。插入或删除元素时,需要移动其他元素,因此操作的时间复杂度较高。 链式存储结构中,线性表的每个元素都包含一个数据域和一个指针域,指针指向下一个元素。通过指针的链接,元素可以按照任意顺序存储在内存中,插入和删除操作只需要改变指针的指向,因此时间复杂度较低。 线性表常见的操作包括插入、删除、查找、获取长度等。其中插入和删除操作需要注意保持线性表的顺序关系。 常见的线性表有数组、链表、栈和队列。数组是最简单的线性表,通过下标可以直接访问元素;链表是动态存储结构,插入和删除操作方便,但访问元素需要遍历链表;栈是一种特殊的线性表,只允许在表的一端进行插入和删除操作;队列也是一种特殊的线性表,只允许在表的一端进行插入操作,在另一端进行删除操作。这些数据结构在实际应用中都有各自的应用场景和优缺点。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值