- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 线性表 本章主要内容 5.1 线性表的定义和运算 5.2 线性表的顺序存储结构 5.3 线性表的链式存储结构 5.4 其它结构形式的链表 5.5 串 本章小结 作业布置 学习线性表结构时,需要掌握哪些方面的内容? 请看下图: 5.1 线性表的定义和运算 线性表是一种最常用、最基本的数据结构; 线性表是一种简单的、应用广泛的数据结构; 线性表是学好其它许多结构的基础; 线性表的实例: 字母表(A,B,C,D,……,Z); 数字表(0,1,2,3,4,……,9); 月份表 (1月,2月,…,12月); 季节表 (春,夏,秋,冬); 学生成绩表,其中每个元素就是一个人的成绩信息。 数据库中table等 5.1 线性表的定义和运算 逻辑结构和运算 5.1.1 线性表的定义 定义: 线性表L是由n个元素a1,a2,……,an组成的 有限 序列。记作 L =(a1,a2,……,an)其中n=0为表长度;n=0时L为空表,记作L=() 表中元素ai的含义: 在不同的场合有不同的含义。 但是,在同一表中,元素类型相同。 L =(a1,a2,… ai-1, ai, ai+1,…,an)中: ai-1叫做ai的直接前驱;ai+1叫做ai的直接后继。 非空线性表的特点: 存在一个“第一个(头、首)”数据元素; 存在一个“最后一个(尾)”数据元素; 除首元素外其他元素有且仅有一个直接前趋; 除尾元素外其他元素有且仅有一个直接后继 。 5.1.2 线性表的运算对线性表有如下基本运算:(1)初始化:创建一个空的线性表,使用线性表必经过程。(2)求表长度:length()返回线性表中的元素个数。(3)按序号取元素:getElement(i,x )从线性表中取出序号为 i 的数据元素。前提:1=i=n, 即存在该元素。否则,应当如何处理? (4)按值查找元素:locate(x)在线性表中查找给定值的元素 x 所在的位置。若不存在,应如何给出相关信息?(5)插入元素:listInsert( i, x)在线性表中给定的位置 i 处,插入给定值的元素 x。前提:1=i=n+1,即插入位置有效,否则如何处理?还有表空间满如何处理?(6)删除元素:listDelete(i)删除线性表种指定序号 i 处的元素。前提:1=i=n, 即存在该元素。否则,应当如何处理?还有空表如何处理? 这里给出的是线性表的6个基本运算,实际中可根据需要增减运算; 例:两表合并为一表,一个表拆分为多个表… 借助这些基本运算可以构造出更加复杂的运算。 例:删除 x 元素—可先用locate(x)找出元素x的位置 i,再用listDelete(i)进行删除。 线性表类SeqList的C++描述框架 class SeqList { public: SeqList();//初始化 int length(); //求表长度 bool getElement(int i, elementType x); //取元素 int locate(elementType x);//定位元素 int listInsert(int i, elementType x); //插入 int listDelete( int i );//删除//数据成员定义 }; 5.2 线性表的顺序存储结构—顺序表 5.2.1 顺序存储结构 假设有一个足够大的连续存储空间(数组)data, 用于存储线性表的元素。 将线性表中的元素依次存储到数组中----顺序存储方式--顺序表。 如下图所示:两个数据成员: data[ ] 数组用来存放线性表的数据元素; listLen 记录表中的元素个数,为整型变量。 顺序表SeqList类的C++完整描述 class SeqList { public: SeqList();//初始化空表 int length(); //求表长度(元素个数) bool getElement(int i, elementType x); //取元素 int locate(elementType x);//定位元素 int listInsert(int i, elementType x); //插入 int listDelete( int i );//删除 private: elementType data[MaxLen]; //存放表元素的数组 int listLen;//记录表中的元素个数 }; 说明:顺序表元素下标和数组data的下标相差1。 表元素下标从1开始; 数组data按C语言规范,下标从0开始。 对应关系如下图: 5.2.2 顺序表的运算实现 1.初始化 建立一个空表,即使得顺序表的listLen=0。 SeqList::S
您可能关注的文档
最近下载
- DB32T 4659.3-2024 医院公共卫生工作规范 第3部分:传染病防治.docx VIP
- CAMDS中文使用手册.pptx VIP
- 铁工电202185号国铁集团关于加强涉铁工程管理的指导意见.pdf
- 新生儿早期基本保健课件.pptx VIP
- 宝石F钻井泥浆泵说明书及图.doc VIP
- 2025宫颈环扎术的护理.pptx VIP
- 人教版信息科技三年级《图片记录瞬间》教学PPT课件.pptx VIP
- EMERSON艾默生 Manual Mounting a DVC6020 DVC6020 Digital Valve Controllers on Fisher Type 585 and 585R Size 100 Actuators, 2 to 3 Inch Travel说明书用户手册.pdf
- AQ 3058-2023 内浮顶储罐检修安全规范.docx VIP
- eHR系统测试打分表.docx VIP
文档评论(0)