- 19
- 0
- 约1.87万字
- 约 71页
- 2017-09-25 发布于北京
- 举报
第二章 线性表 2.1 线性表的定义 2.1.1 线性表的逻辑结构 线性表是有限元素(e0,e1, ...,ei,...,en-1)的有序序列的集合。其中n是有穷自然数,表中的每个元素ei具有相同的特性,表中元素占用空间大小相同,记为:size,n是表的长度。当n=0时,表为空;当n0时,e0是第一个元素,en-1 是最后一个元素。 “有序”是指线性元素间的相互位置关系。ei-1是 ei的直接前驱元素,而元素ei一定在元素ei+1之前,称ei+1是ei的直接后继元素。而且,每个元素只有一个直接前驱元素(除第一个元素),也仅有一个直接后继元素(除最后一个元素)。 2.1.2 线性表的抽象数据类型 2.2 线性表的顺序存储及操作 2.2.1 线性表顺序存储 1. 线性表顺序存储概念 线性表顺序存储方式,是将线性表中的数据元素连续顺序地存放于存储器中相邻的单元 。 线性表占用的第一个存储单元的地址,就是线性表的首地址,也是线性表中第一个数据元素(e0)的首地址。 “首地址”有两种理解: 一是相对于线性表本身,是线性表的始点,即“0号地址”,这就是通常所说的“相对地址”; 二是相对于计算机的物理存储空间,线性表的始点相对于计算机物理存储空间则是一个“物理地址”,一般记为:location(e0),通常称为“绝对地址”或“基地址”。 2. 线性表顺序存储结构定义 线性表结构: typedef struct { EType *element; int length; int MaxSize; } LinearList; LinearList L,L1,L2; 学生信息的情况数据元素结构类型(EType)及线性表 typedef struct { unsigned number[10]; char name[8]; char sex[2]; int age; char place[20]; }student; typedef struct { student *element; int length; int MaxSize; } LinearList; LinearList stud1, stud2; 2.2.2 线性表顺序存储结构下的操作 1. 构造空线性表L 空线性表是指表中没有一个数据元素,但数据元素的空间和线性表结构存在 构造空线性表L算法(Creat) viod Creat(LinearList L , int MaxListSize) {// 构造一个最大容量为MaxListSize 的线性表L L.MaxSize = MaxListSize; L.element = new EType [L.MaxSize]; L.length = 0; } 算法的时间复杂性是O(1)。 2. 输出线性表L中的所有数据元素 输出线性表L中所有数据元素(Output) viod Output(LinearList L) {// 逐个地输出线性表L中的数据元素 for (int i = 0; i L.length; i++) cout L.element[i] ; } 算法的时间复杂性是O(length )。 3. 线性表L中取第k个元素 线性表L中将第k个元素取至x中算法(GetElem) bool GetElem(LinearList L, int k, EType x) { //L中第k个元素取至x中,如不存在返回false,找到返回true,x取回 if (k 1 || k L.length) return false x = L.element[k - 1]; return true; } 算法的时间复杂性是O(1 )。 4. 线性表L中查找元素x 线性表L中查找元素x(Search) int Search(LinearList L, const EType x) {// 查找x,如果找到,返回x所在的位置下标;如果未找到返回-1 for (int i = 0; i L.length; i++) if (L.element[i] == x) return i; return -1; } 算法的时间复杂性是O(length)。 一般是已知某个查找关键字(Searchkey),通过查找关键字与线性表中的数据元素的关键字的比较完成查找过程的,因此,算法查找的比较条件也可以表达为: if (L.element[i].key == Searchkey) 5. 线性表L
您可能关注的文档
- 数组与结构.ppt
- 全面预算管理五大要领(汤谷良).ppt
- 全微分方程.ppt
- 如何写好基金申请书(侯凡凡院士).ppt
- 如何写好学校新闻(2009.05.24).ppt
- 上善若水,水之哲学.ppt
- 数据结构 栈和队列.ppt
- 数据库 第4章 表操作.ppt
- 数据库 第六章 关系数据理论.ppt
- 数据库二级01-02(第一部分理论知识).ppt
- 小区绿化施工协议书.docx
- 墙面施工协议书.docx
- 1 古诗二首(课件)--2025-2026学年统编版语文二年级下册.pptx
- (2026春新版)部编版八年级道德与法治下册《3.1《公民基本权利》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《4.3《依法履行义务》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.2《按劳分配为主体、多种分配方式并存》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.1《公有制为主体、多种所有制经济共同发展》PPT课件.pptx
- 初三教学管理交流发言稿.docx
- 小学生课外阅读总结.docx
- 餐饮门店夜经济运营的社会责任报告(夜间贡献)撰写流程试题库及答案.doc
原创力文档

文档评论(0)