- 1、本文档共80页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构课件 chapter02_线性表
第二章 线性表 线性表是最简单和最常用的一种数据结构。 本章讨论线性表的定义、顺序存储结构和链式存储结构。 重点是线性表两种不同存储结构下的操作及其相应的算法。 第二章 线性表 2.1 线性表的概念及其抽象数据类型 2.2 线性表的顺序存储 2.3 线性表的链式存储 2.4 线性表的应用——一元多项式的表示及相加 2.5 顺序表与链表的综合比较(自学) 2.6 总结与提高(复习作业) 2.1 线性表的概念及其抽象数据类型 线性表的逻辑结构 线性表的定义 线性表的特点 线性表的抽象数据类型定义 线性表的逻辑结构 线性表的定义 线性表是由n(n=0)个类型相同的数据元素组成的有限序列,记做 (a1,a2,…ai-1,ai,ai+1,…an) 第一个元素a1无直接前驱 最后一个元素an无直接后继 每个数据元素ai只有一个直接前驱和一个直接后继 数据元素之间具有一对一的关系 线性表的特点 线性表的逻辑结构 线性表的定义 线性表的特点 同一性:线性表由同类数据元素组成 有穷性:线性表由有限个数据元素组成 表长度:表中数据元素的个数 有序性:线性表中相邻数据元素之间存在序偶关系ai,ai+1 线性表的抽象数据类型定义 ADT List{ 数据元素:D={ai|ai∈D0,i=1,2,…n,n=0,D0为某一数据对象} 结构关系:R={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置为空表 线性表的抽象数据类型定义 数据元素:D={ai|ai∈D0,i=1,2,…n,n=0,D0为某一数据对象} 结构关系:R={ai,ai+1|ai,ai+1∈D0,i=1,2,…n-1} 基本操作: (4) EmptyList(L) 操作前提:线性表L已经存在 操作结果:如果L为空表则返回TRUE,否则返回FALSE (5) ListLength(L) 操作前提:线性表L已经存在 操作结果:如果L为空表则返回0,否则返回表中数据元素的个数 (6) Locate(L,e) 操作前提:线性表L已经存在,e为合法数据元素值 操作结果:如果L中存在数据元素e,则将“当前指针”指向数据元素e所在位置并返回TRUE,否则返回FALSE 线性表的抽象数据类型定义 数据元素:D={ai|ai∈D0,i=1,2,…n,n=0,D0为某一数据对象} 结构关系:R={ai,ai+1|ai,ai+1∈D0,i=1,2,…n-1} 基本操作: (7) GetData(L,i) 操作前提:线性表L已经存在,且i值合法 操作结果:返回线性表L中第i个数据元素的值 (8) InsList(L,i,e) 操作前提:线性表L已经存在,e为合法元素值且i值合法 操作结果:在表中第i个位置之前插入新的数据元素e,L的长度加1 (9) DelList(L,i,e) 操作前提:线性表L已经存在,e为合法元素值且i值合法 操作结果:删除L的第i个数据元素,并用e返回其值,L的长度减1 2.2 线性表的顺序存储 线性表的顺序存储结构 顺序表的定义 地址映像的计算公式 线性表顺序存储的表示 线性表顺序存储结构上的基本操作 查找操作 插入操作 删除操作 线性表的顺序存储结构 顺序表的定义 演示 线性表的顺序存储是指用一组地址连续的存储单元依次存储线性表中的各个数据元素,采用顺序存储结构存放的线性表通常称为顺序表。 顺序表归纳为:关系线性化、结点顺序存 地址映像的计算公式 线性表顺序存储的表示 线性表的顺序存储结构 顺序表的定义 演示 地址映像的计算公式 假设线性表中有n个元素,每个元素占k个单元,第一个元素的地址为loc(a1),则第i个元素地址loc(ai)的计算公式: loc(ai)=loc(a1)+(i-1)*k 线性表顺序存储的表示 线性表的顺序存储结构 顺序表的定义 演示 地址映像的计算公式 线性表顺序存储的表示 说明 #define MaxSize 100 /*此处的宏定义变量表示线性表的最大长度*/ typedef struct list{ DataType data[MaxSize]; /*存放线性表的数组*/ int last; /*线性表最后一个元素的下标,空表为-1*/ }SeqList; 线性表的顺序存储结构 #define MaxSize 100 typedef struct{ DataType da
文档评论(0)