- 1、本文档共51页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第二部分 数据结构
主讲教师:王永波
ybwang@cumt.edu.cn
中国矿业大学环境与测绘学院
2017年4月11日
提纲
概述
线性表
栈与队
树与二叉树
图
查找
排序
二、线性表
1、线性表的逻辑结构
4
元素1
元素2
元素3
2、定义
定义
n( ? 0)个数据元素的有限序列
存储结构
顺序表(向量),链表
特点
除第一个元素外,其他每一个元素有一个且仅有一个直接前驱。
除最后一个元素外,其他每一个元素有一个且仅有一个直接后继。
3、线性表的运算
基本运算
插入:在两个确定元素之间插入一个新元素
删除:删除线性表中某个元素
查找:按某种要求查找线性表中一个元素
排序:按给定要求对表中元素重新排序
4、顺序存储线性表
顺序存储结构/向量式存储结构
将线性表中的元素相继存放在
一个连续的存储空间中。
可利用一维数组描述存储结构
设:已知线性表中每个元素占l个单元,线性表内存首地址为:adr(a1)=b,则线性表中第i个元素的存储地址为
adr(ai)=adr(a1)+(i-1)l
4.1 顺序表类的定义
template class Type
class CSeqList {
//顺序表存储数组
Type *data;
//最大允许长度
int MaxSize;
//当前最后元素下标
int last;
public:
CSeqList ( int MaxSize = defaultSize );
~CSeqList ( ) { delete [ ] data; }
int Length ( ) const
{ return last+1; }
// 查找
int Find ( Type x ) const;
int Locate ( int i ) const; //定位
int Insert (int i, Type x); //插入
int Remove (int i); //删除
int Next ( Type x ) ; //后继
int Prior ( Type x ) ; //前驱
int IsEmpty ( ) { return last ==-1; }
int IsFull ( )
{ return last == MaxSize-1; }
Type Get ( int i ) { //提取
return i 0 || i last?NULL : data[i];
}
}
8
4.1 顺序表(SeqList)类的定义
class CSeqList {
//顺序表存储数组
int *data;
//最大允许长度
int MaxSize;
//当前最后元素下标
int last;
public:
CSeqList ( int MaxSize = defaultSize );
~CSeqList ( ) { delete [ ] data; }
int Length ( ) const
{ return last+1; }
// 查找
int Find (int x ) const;
int Locate (int i ) const; //定位
int Insert (int i, int x); //插入
int Remove (int i); //删除
int Next (int x ) ; //后继
int Prior (int x ) ; //前驱
int IsEmpty ( ) { return last ==-1; }
int IsFull ( )
{ return last == MaxSize-1; }
int Get ( int i ) { //提取
return i 0 || i last?NULL : data[i];
}
}
9
4.2 顺序存储结构的插入、删除
插入
线性表的插入是指在第i(1?i ? n+1)个元素之前插入一个新的数据元素x,使长度为n的线性表变成长度为n+1的线性表
操作:将第i至第n共(n-i+1)个元素后移
a1
a2
…
ai-1
…
an
ai
x
4.
您可能关注的文档
- (17三15钟炜等)如何发挥骨干教师在校本研修工作中的引领作用(校本新讲座三之15)-副本论述.ppt
- (152号文件附件)机电提升系统专项整治活动排查表(表格)论述.doc
- (2014秋开学)人教版物理九年级全册第十五章+电流和电路+单元测(含)论述.doc
- (2015年)豆制品废水处理设计方案论述.doc
- (2016届)学前教育专业毕业班毕业论文通知论述.doc
- (DCS)版新能源ETS技术协议论述.doc
- (STRUTS2.3.4+SPRING3.2+HIBERNATE4.1.1)SSH框架整合包括JAR包详解论述.pdf
- (XX项目)商品房买卖合同补充协议论述.doc
- (安全监察部)9.14论述.doc
- (北师大版)Unit_14_Careers_知识点总结论述.docx
最近下载
- 基础化学高职高专第五版高琳第六章第一节化学平衡与平衡常数.pptx VIP
- 输电线路全寿命周期设计建设技术导则.pdf VIP
- 基础化学高职高专第五版高琳第十章氧化还原平衡.pptx VIP
- 人教B版高中数学必修二同步讲义:平面向量线性运算的应用(学生版+解析).pdf VIP
- 人教B版高中数学必修二讲义:向量的坐标及其运算(学生版+解析).pdf VIP
- 人教B版高中数学必修二同步讲义:向量的基本定理(学生版+解析).pdf VIP
- 基础化学高职高专第五版高琳第十一章脂肪烃.pptx VIP
- 浅谈搅拌站与精细化管理 - 管理文章.docx VIP
- 混凝土精细化管理.docx VIP
- 一种调料售货机的自动售货方法.pdf VIP
文档评论(0)