DS第三篇(上):线性表、线性表之顺序表

本文深入探讨线性表的定义、特点,以顺序表和链表为例,阐述查找、插入和删除算法,并分析它们在不同场景下的适用性和优缺点。同时,通过具体示例,如图书数据的顺序表操作,揭示顺序存储结构的优势与局限性。
摘要由CSDN通过智能技术生成

本篇主要内容:

  1. 顺序表和链表的查找、插入、和删除算法、 链表的创建算法。
  2. 线性表应用的疮痈算法:线性表合并等。
  3. 从时间和空间的复杂度的角度,分析2种存储结构的特点、适用场合、优缺点
  4. 讨论线性表的逻辑结构、存储结构、相关运算。
  5. 线性表应用实例
    在这里插入图片描述

1.定义与特点

线性表: 由n(n>=0)数据特性相同的元素构成的,有限序列。
可表示为(a0,a1,a2,…,an)

其实很好理解,
像c语言的数组、结构体构成的数组、字符串、
像python语言的列表、字典、元组
要注意的是:
每个数据元素,可以包含多个数据项,例如图书馆书籍列表,每一本书(数据元素)包括许多项信息:作者、出版社、、(数据项)

特点:

  1. 有唯一的“第一个”Data Element
  2. 有唯一的“最后一个”Data Element
  3. 除去第一个,其他Data Element只有一个前驱
  4. 出去最后一个,其他Data Elemnt只有一个后继

1.1引例

1.二十六字母的英文表
在这里插入图片描述
2.国外各国家疫情统计汇总
在这里插入图片描述
3.学生表
在这里插入图片描述

4.(书本中)一元多项式运算

多项式系数表示成一个线性表

在这里插入图片描述

那么多项式运算,也就是线性表对应元素相加(/相减)

5.稀疏多项式

所谓“稀疏” ,可以理解成毛发(项数)稀少…,且项数分布稀少
此时,用数据元素是一个二元组(有两个数据项),的线性表来表示

在这里插入图片描述

稀疏多项式做运算, 创建一个新组C,对应项相加,不对应的就新增。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
小结:顺序存储vs链式存储
顺序存储,存储空间分配死板、运算的空间复杂度高。
正如稀疏多项式的表示(有2数据项的链式结构),不采用一元多项式的表示(数组)


2.线性表的ADT

Declaration:
ADT:
仅是一个模型的定义不涉及具体实现
(不然为什么叫抽象数据类型呢?)
(如果实现了,那就是一个类了
所以在ADT中,使用到的参数, 也不必考虑具体是哪个数据类型
ADT定义的的线性表
根据实际所采用的存储结构形式,进行具体的表示和实现

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

adingable

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值