- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第2章 线性表;线性表是一种最简单的线性结构。
什么是线性结构?简单地说,线性结构是一个数据元素的有序(次序)集合。它有四个基本特征:
在数据元素的非空有限集中,
①存在惟一的一个被称做第一个的数据元素;
②存在惟一的一个被称做最后一个的数据元素;
③除第一个之外,集合中的每个数据元素均只有一个前驱;
④除最后一个之外,集合中的每个数据元素均只有一个后继。
这里的有序仅指在数据元素之间存在一个领先或落后的次序关系,而非指数据元素值的大小可比性。比较典型的线性结构:线性表、栈、队列、串等。
;2.1 线性表的类型定义2.1.1 线性表的定义;说明:;2.1.2 线性表的抽象数据类型;;2.1.3 操作举例;void unionList(SqList la,SqList lb)
{
int lbSize=getSize(lb);
ElemType e;
for (int i=1;i=lbSize;++i)
{
e=getElem(lb,i);
if (!locateElem(la,e,equal))
insertElem(la,e,la.size+1);
}
}
int equal(ElemType e1,ElemType e2)
{
if (e1.id==e2.id)
return 1;
return 0;
};2.2 线性表的顺序表示和实现2.2.1 线性表的顺序表示;第i个元素的地址;线性表的顺序存储结构示意图;用C++语言描述的顺序表类型如下所示:sqlist.h;bool initList(SqList L,int ms);
void clearList(SqList L);
int getSize(SqList L);
bool isEmpty(SqList L);
bool isFull(SqList L);
void traverList(SqList L,void (*visit)(ElemType));
ElemType getElem(SqList L,int pos);
int locateElem(SqList L,ElemType e,int (*compare)(ElemType,ElemType));
int findList(SqList L,ElemType e);
bool insertElem(SqList L,ElemType e,int pos);
bool deleteElem(SqList L,int pos);
bool createList(SqList L,int n,void (*visit)(ElemType));
;2.2.2 线性表顺序存储结构上的基本运算sqlist.cpp;⑵ 删除线性表的所有元素,使之成为空表
在顺序存储方式下实现此操作只要将线性表的长度置0即可。
void clearList(SqList L)
{
L.size=0;
}
⑶ 检查线性表是否为空
bool isEmpty(SqList L)
{
return L.size==0;
};⑷ 获取表元素的个数
int getSize(SqList L)
{
return L.size;
}
⑸ 检查线性表是否已满
bool isFull(SqList L)
{
return L.size==L.maxSize;
};;⑺ 遍历线性表
遍历一个线性表就是从线性表的第一个元素起,按照元素之间的逻辑顺序,依次访问每一个元素,并且每个元素只被访问一次,直到访问完所有元素为止。
void traverList(SqList L, void (*visit)(ElemType))
{
for (int i=0;iL.size;++i)
visit(L.list[i]);
coutendl;
}
如要依次输出每个元素的值,visit()的实参可定义如下:
void print(ElemType e)
{
coutid:e.id age:e.ageendl;
};⑻ 查找线性表中满足给定条件的元素
int locateElem(SqList L,ElemType e,int (*compare)(ElemType,ElemType))
{
for (int i=0;iL.size;++i)
if (compare(L.list[i],e)==1)
return i+1;
return 0;
}
如要查找与e的相等(某对应成员的值相等)的元素,则comp
您可能关注的文档
最近下载
- 三年级上册数学应用题专项训练.pdf VIP
- 现代幼儿教师实用英语口语 (10)字母教学.pptx VIP
- 1.2.3多细胞生物教学设计 (表格式)苏教版生物七年级上册.docx VIP
- 《生物化学》考研查锡良版2025年配套名校考研真题库.pdf VIP
- 110KV升压站工程施工组织设计.pdf VIP
- 高职院校产教融合、校企合作项目质量评价体系构建的探索.docx VIP
- 2025年山东省公安机关公务员录用考试模拟试卷.docx VIP
- 2025北京师范大学校医院事业编医生岗招聘2人笔试模拟试题及答案解析.docx VIP
- 2025ADA血糖管理指南解读.pptx VIP
- 音乐鉴赏:音乐基础知识PPT教学课件.pptx VIP
原创力文档


文档评论(0)