- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
2025/9/191数据结构课件西北大学计算机系本演示文稿可能包含观众讨论和即席反应。使用PowerPoint可以跟踪演示时的即席反应,在幻灯片放映中,右键单击鼠标请选择“会议记录”选择“即席反应”选项卡必要时输入即席反应单击“确定”撤消此框此动作将自动在演示文稿末尾创建一张即席反应幻灯片,包括您的观点。
2025/9/192第2章线性表2.1线性表的概念及运算2.2线性表的顺序存储2.3线性表的链式存储2.4一元多项式的表示及相加
2.1线性表的概念及运算2025/9/19线性表的逻辑结构线性表的抽象数据类型定义
线性表的定义2025/9/19线性表(LinearList)是由n(n≥0)个类型相同的数据元素a1,a2,…,an组成的有限序列,记做(a1,a2,…,ai-1,ai,ai+1,…,an)。数据元素之间是一对一的关系,即每个数据元素最多有一个直接前驱和一个直接后继。线性表的逻辑结构图为:
线性表的特点2025/9/19同一性:线性表由同类数据元素组成,每一个ai必须属于同一数据对象。有穷性:线性表由有限个数据元素组成,表长度就是表中数据元素的个数。有序性:线性表中相邻数据元素之间存在着序偶关系ai,ai+1。030102
2.1.2线性表的抽象数据类型定义抽象数据类型定义:ADTLinearList{ 数据元素:D={ai|ai∈D0,i=1,2,…,n n≥0,D0为某一数据对象}关系:S={ai,ai+1|ai,ai+1∈D0,i=1,2,…,n-1}基本操作:(1)InitList(L)操作前提:L为未初始化线性表。 操作结果:将L初始化为空表。(2)DestroyList(L)操作前提:线性表L已存在。操作结果:将L销毁。(3)ClearList(L)操作前提:线性表L已存在。操作结果:将表L置为空表。………}ADTLinearList
2.2线性表的顺序存储2025/9/191线性表的顺序存储结构2线性表顺序存储结构上的基本运算
顺序存储结构的定义线性表的顺序存储是指用一组地址连续的存储单元依次存储线性表中的各个元素,使得线性表中在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中,即通过数据元素物理存储的相邻关系来反映数据元素之间逻辑上的相邻关系。采用顺序存储结构的线性表通常称为顺序表。假设线性表中每个元素占k个单元,第一个元素的地址为loc(a1),则第k个元素的地址为:loc(ai)=loc(a1)+(i-1)×k
顺序存储结构示意图2025/9/19存储地址内存空间状态逻辑地址Loc(a1)a11Loc(a1)+(2-1)ka22………loc(a1)+(i-1)kaii………loc(a1)+(n-1)kann...loc(a1)+(maxlen-1)k空闲
顺序存储结构的C语言定义2025/9/190102#define maxsize=线性表可能达到的最大长度;typedefstruct{ElemTypeelem[maxsize];/*线性表占用的数组空间*/intlast;/*记录线性表中最后一个元素在数组elem[]中的位置(下标值),空表置为-1*/}SeqList; 注意区分元素的序号和数组的下标,如a1的序号为1,而其对应的数组下标为0。
logo线性表顺序存储结构的基本运算线性表的基本运算:查找操作插入操作删除操作顺序表合并算法线性表顺序存储结构的优缺点分析
查找操作2025/9/1912线性表的两种基本查找运算按序号查找GetData(L,i):要求查找线性表L中第i个数据元素,其结果是L.elem[i-1]或L-elem[i-1]。按内容查找Locate(L,e):要求查找线性表L中与给定值e相等的数据元素,其结果是:若在表L中找到与e相等的元素,则返回该元素在表中的序号;若找不到,则返回一个“空序号”,如-1。线性表的查找运算算法描述为:
线性表的查找运算2025/9/19intLocate(SeqListL,ElemTypee){ i=0;/*i为扫描计数器,初值为0,即从第一个元素开始比较*/while((i=L.last)(L.elem[i]!=e)
文档评论(0)