- 3
- 0
- 约8.47千字
- 约 34页
- 2015-12-24 发布于广东
- 举报
数据结构 第2章 线性表 第2讲 第2章 线性表 线性结构是最简单、最基本的数据结构,本章讨论线性表的基本概念、存储结构以及相关运算。 主要内容: ? 线性表的基本概念 ? 线性表的顺序存储结构及实现 ? 线性表的链表存储结构及实现 ? 线性表的应用 本章分为(4~5)讲 第1讲 2.1 线性表的基本概念 2.2 线性表的顺序存储结构及实现(2.2.1~2.2.3) 2.2.4 线性表的其他运算 除前面两种基本运算外,还有一些较复杂的运算。 class SqList { //……代码与前文类Sqlist的定义完全同前; public: //以下是增加的两个公有函数成员 void Insertdz( ElemType x); //有序表插入 void Deletaz(ElemType x); //有序表删除 }; 1.在非递减有序表中插入一个数据元素x,使线性表仍保持非递减有序。 前提是线性表中数据元素已经有序。已知条件是将要插入的数据x,插入的位置需要程序来查找。 已知有线性表:(14,21,21,38,46,80) 若x=30,结果:(14,21,21,30,38,46,80) 若x=10,结果:(10,14,21,21,38,46,80) 若x=99,结果:(14,21,21,38,46,80,99) 因插入的数据元素x值不同其插入位置也不同。插入位置怎样确定? 1.在非递减有序表中插入一个数据元素x,使线性表仍保持非递减有序。 算法2.3 void SqList::Insertdz( ElemType x) { int i=length-1; while(i=0 elem[i]x) { elem[i+1]=elem[i]; i--;} elem[i+1]=x; //插入数据元素 length++; //表度长加1 }; 算法从表尾元素开始与x比较,当elem[i]x且未到表头元素时继续循环。一边比较一边向后移动数据元素。 算法的主要考虑数据元素的移动,时间复杂度为O(n)。 若采用从表头元素开始与x比较的方法,其效率如何? 2.在非递减有序表中删除所有值为x的元素。 已知条件是某数据元素x的值。以elem[i]与x是否相等为判断条件来查找删除的位置,然后删除所有值为x的元素。 算法2.4 void SqList::Deletaz(ElemType x) { int i=0,j; //查找第一个x值出现的位置 while(ilength elem[i]x) i++; if (i==length) cout \n x no!endl; else{ while(elem[i]==x) //进行删除 { for( j=i; jlength-1; j++) elem[j]=elem[j+1]; length--; //表长减1 } } } 删除非递减有序表中所有值为x的元素,算法分析 本算法含有两个并列的循环结构,由于影响时间效率的主要因素是大量数据元素的移动,因此前面关于下标i的循环忽略不计。 else中是一个二重循环,如果忽略x重复出现的次数,主要依据是移动数据元素的for循环,经估算元素的平均移动次为(n?1)/2,因此算法的时间复杂度是O(n)。 综上所述,线性表采用顺序存储结构在插入、删除时,需大量移动数据元素,效率较低。由于是静态存储结构,需预先定义大小确定的数组,容量有限。 2.3 线性表的链表存储结构及实现 采用顺序存储结构的线性表,在频繁进行插入、删除操作时会大量移动数据元素,效率较低。同时,顺序存储必须占用一批地址连续的存储空间,存储分配只能预先进行。但是,它适于直接(随机)存取操作。 本节将讨论线性表的另一种存储结构—链表存储结构,由于它不要求逻辑上相邻的数据元素在物理位置上也一定相邻,因此,它没有顺序存储结构所具有的弱点。 2.3.1 单链表与指针 对于程序设计基础较好的读者,可以越过本节直接学习2.3.2节。
您可能关注的文档
- 数据库基础与Access应用教程 赵洪帅 林旺 陈立新 第1章 数据库基础知识新.ppt
- 数据库基础与Access应用教程 赵洪帅 林旺 陈立新 第2章 初识Access新.ppt
- 数据库基础与Access应用教程 赵洪帅 林旺 陈立新 第4章 创建和使用表新.ppt
- 数据库基础与Access应用教程 赵洪帅 林旺 陈立新 第5章 查询新.ppt
- 数据库基础与Access应用教程 赵洪帅 林旺 陈立新 第6章 窗体新.ppt
- 数据库基础与Access应用教程 赵洪帅 林旺 陈立新 第7章 报表新.ppt
- 数据库基础与Access应用教程 赵洪帅 林旺 陈立新 第10章 10模块与VBA编程基础新.ppt
- 中国税制 董汉彬 齐代民 第七章新.ppt
- 数据库基础与Access应用教程 赵洪帅 林旺 陈立新 第11章 VBA数据库编程新.ppt
- 数据库基础与Access应用教程 赵洪帅 林旺 陈立新 第12章 数据库安全新.ppt
最近下载
- 年产2万吨碳酸锂项目(吸附剂车间竣工环保验收监测调查报告.docx VIP
- 2025年高考湖南卷物理真题试卷.pdf VIP
- 生物安全培训.doc VIP
- 圣兴化工年产1万吨硝酸镁、2万吨水溶肥、1万吨硝酸钙、2万吨太阳能熔盐、5万吨农业(工业)硝酸钾及5.4万吨氯化镁溶液项目环评.doc VIP
- DB37T 4983—2025 无人机半航空瞬变电磁探测技术规程.pdf
- 2026春沪教版七年级英语下册单词衡水体字帖.pdf VIP
- 25HNTJ026 锯齿形装配式混凝土剪力墙结构施工图制图规则及构造详图 T_HNKCSJ 025-2025.docx VIP
- 25HNTJ025 刚节点装配式混凝土框架结构施工图制图规则及构造详图 T_HNKCSJ 024-2025.docx VIP
- 25HNTJ025 低能耗集成装配式多层房屋构造 T_HNKCSJ 023-2025.docx VIP
- 催眠引导语合集元式催眠.docx VIP
原创力文档

文档评论(0)