版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2-3线性表的顺序存储结构及实现v第二章线性表顺序表的存储结构顺序表的实现学什么?顺序表的类定义、构造函数、析构函数顺序表的判空、取长度操作:Empty、Length顺序表的查找操作:Get、Locate顺序表的插入、删除操作:Insert、Delete2-3-1顺序表的存储结构v第二章线性表顺序表的存储方法顺序表(向量):线性表的顺序存储结构某些内存单元可能是空吗?例:(34,23,67,43)342367434存储要点用一段地址连续的存储单元依次存储线性表中的数据元素用什么属性来描述顺序表?342367434存储空间的起始位置顺序表的容量(最大长度)顺序表的当前长度例:(34,23,67,43)Page03顺序表的存储方法顺序表(向量):线性表的顺序存储结构0…i-2i-1…n-1MaxSize-1a1…ai-1ai…an
长度数组的长度MaxSize线性表的长度lengthMaxSize≥length(a1,
…,ai-1
,ai,…,an)Page04顺序表的存储方法顺序表(向量):线性表的顺序存储结构存取访问0…i-2i-1…n-1MaxSize-1a1…ai-1ai…an
长度(a1,
…,ai-1
,ai,…,an)如何求得任意元素的存储地址?cLoc(ai)Loc(a1)Loc(ai)=Loc(a1)+(i-1)×cPage07存取时间是O(1)随机存取2-3-2顺序表的实现v第二章线性表顺序表的实现——类定义InitList:表的初始化,建一个空表CreateList:建立具有n个元素的线性表DestroyList:销毁表,释放表所占用的存储空间Length:求表的长度Get:在表中取序号为i
的数据元素Locate:在线性表中查找值等于x
的元素Insert:在表的第i
个位置处插入一个新元素xDelete:删除表中的第i
个元素Empty:判断表是否为空线性表的抽象数据类型定义?constint
MaxSize=100;template<typename
DataType>classSeqList{public:
SeqList();
SeqList(DataTypea[],intn);
~SeqList();
intLength();
DataTypeGet(int
i);
intLocate(DataTypex);
voidInsert(int
i,DataTypex);
DtaTypeDelete(int
i);intEmpty();
intEmpty();
voidPrintList();private:
DataTypedata[MaxSize];
intlength;};顺序表的实现——初始化初始化顺序表的函数原型是什么?InitList
输入:无功能:表的初始化,建一个空表输出:无0…MaxSize-1
0SeqList<DataType>::SeqList(){Length=0;}SeqList<DataType>::SeqList(DataTypea[],intn){
}顺序表L
数组a35122433425if(n>MaxSize)throw“参数非法”;顺序表的实现——建立for(inti=0;i<n;i++)data[i]=a[i];length=n;3512243342顺序表的实现——判空intSeqList<DataType>::Empty(){if(length==0)return1;elsereturn0;}0…i-2i-1…n-1MaxSize-1a1…ai-1ai…an
nintSeqList<DataType>::Length(){returnlength;}求顺序表的长度?顺序表的实现——按位查找template<typenameDataType>DataTypeSeqList<DataType>::Get(inti){
if(i<1&&i>length)throw"查找位置非法";elsereturndata[i-1];}按位查找的时间复杂度?0…i-2i-1…n-1MaxSize-1a1…ai-1ai…an
lengthO(1)随机存取template<typenameDataType>intSeqList<DataType>::Locate(DataTypex){for(inti=0;i<length;i++)if(data[i]==x)returni+1;//返回其序号i+1return0;//退出循环,说明查找失败}0…i…n-1MaxSize-1a1…x…an
length按值查找的时间复杂度?O(n)顺序表的实现——按值查找顺序表的实现——插入33例1
对于线性表(35,12,24,42),在i=2的位置上插入元素33435122442a1a2a3a4012345什么情况下插入无法进行?注意边界条件表满:length>=MaxSize合理的插入位置:1≤i≤length+1(注意:i
指的是元素的序号)template<typenameDataType>voidSeqList<DataType>::Insert(inti,DataTypex){if(length==MaxSize)throw"上溢";
if(i<1||i>length+1)throw"插入位置错误";for(intj=length;j>=i;j--)data[j]=data[j-1];//第j个元素存在数组下标为j-1处data[i-1]=x;length++;}基本语句?执行多少次?顺序表的实现——插入
for(intj=length;j>=i;j--)data[j]=data[j-1];最好情况(i=n+1):执行0次,时间复杂度为O(1)最坏情况(i=1):执行n+1次,时间复杂度为O(n)平均情况(1≤i≤n+1):时间复杂度为O(n)顺序表的实现——插入
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年医院虚拟现实技术应用研究合同
- 心理咨询师三级考试重点串讲及练习题集含答案
- 考试题如何制定有效的绿色能源发展策略等
- 环境监测数据考试题库
- 财务专员面试题及财务软件操作考核含答案
- Section Ⅱ Reading and Thinking(3)英语教学课件
- 月光下的大树课件
- 大学节课件教学课件
- 2026广西医科大学附属口腔医院人才招聘35人笔试考试参考试题及答案解析
- 2025湖南长沙浏阳市金阳医院、浏阳市永安镇中心卫生院第三批公开招聘编外劳务派遣人员61人考试笔试备考试题及答案解析
- 2026届八省联考(T8联考)2026届高三年级12月检测训练地理试卷(含答案详解)
- 2025民生银行总行资产经营管理部社会招聘笔试题库带答案解析
- 公益性公墓建设项目竣工验收报告
- 2026年上海工程技术大学单招职业倾向性测试题库参考答案详解
- 2025黑龙江大兴安岭地区韩家园林业局工勤岗位人员招聘40人备考考点试题及答案解析
- 2025年陕煤澄合矿业有限公司招聘(570人)笔试备考题库附答案解析
- 2025年保密观知识竞赛题库(含参考答案)
- 2025山西朔州市两级法院司法辅助人员招聘16人笔试考试备考试题及答案解析
- 危险化学品应急救援员岗位招聘考试试卷及答案
- 物业餐饮安全协议书
- 生物统计学期末复习题库及答案
评论
0/150
提交评论