- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
上节课要点回顾;数据结构课程的内容;近3周上课内容;线性结构包括线性表、堆栈、队列、字符串、数组等等,其中,最简单、最常用的是------;第2章 线性表;(a1, a2, … ai-1,ai, ai+1 ,…, an)
;例1 分析 26 个英文字母组成的英文表;线性表的抽象数据类型的定义:
ADT List {
数据对象:D={ai | ai∈Elemset, i=1, 2,…, n, n≥0}
数据关系:R1={ai-1, ai | ai-1, ai∈D, i=2, …, n}
基本操作:
InitList(L)
操作结果:构造一个空的线性表L
DestroyList(L)
初始条件:线性表已存在
操作结果:销毁线性表L
;ClearList(L)
初始条件:线性表已存在
操作结果:置线性表L为空表
IsListEmpty(L)
初始条件:线性表已存在
操作结果:若线性表L为空表,则返回TRUE,否则返回FALSE
ListLength(L)
初始条件:线性表已存在
操作结果:返回线性表L数据元素个数
GetElem(L, i, e)
初始条件:线性表已存在(1 ≤ i ≤ ListLenght(L))
操作结果:用e返回线性表L中第i个数据元素的值;locateElem(L, e, compare())
初始条件:线性表已存在, compare()是数据元素判定函数
操作结果:返回线性表L中第1个与e满足关系comare()的数据元素的位序
PriorElem(L, cur_e, pre_e)
初始条件:线性表已存在
操作结果:若cur_e是线性表L的数据元素,且不是第一个,则用pre_e返回它的前驱,否则操作失败,pre_e无定义
NextElem(L, cur_e, next_e)
初始条件:线性表已存在
操作结果:若cur_e是线性表L的数据元素,且不是第最后一个,则用next_e返回它的后继,否则操作失败,next_e无定义;ListTraverse(L, visit())
初始条件:线性表已存在
操作结果:遍历线性表。依次对线性表L的每个数据元素调用visit()函数,一旦visit()失败,则操作失败
ListInsert(L, i, e)
初始条件:线性表已存在(1 ≤ i ≤ ListLenght(L)+1)
操作结果:在线性表L中第i个数据元素之前插入新元素e, L长度加1
ListDelete(L, i, e)
初始条件:线性表已存在(1≤ i ≤ListLenght(L))
操作结果:删除线性表L中第i个数据元素,用e返回其值,L长度减1
}ADT List;上述是线性表抽象数据类型的定义,其中只是一些基本操作,另外可以更复杂。如将两个线性表合并等。复杂的操作可用基本操作实现。
例3:将两个非递减的表合成为一个非递减的表
void MergeList(List la, List lb, list lc)
{
InitList(lc);
i=j=1;
k=0;
la_len=ListLength(la);
lb_len=ListLength(lb);;while(i=la_len j=lb_len)
{
GetElem(la, i, ai);
GetElem(lb, j, bj);
if(ai=bj)
{ ListInsert (lc, ++k, ai); i++; }
else
{ ListInsert (lc, ++k, bj); j++; }
}
while(i=la_len)
{ GetElem(la, i++, ai); ListInsert(lc, ++k, ai);}
while(j=lb_len)
{ GetElem(lb, j++, bj); ListInsert(lc, ++k, bj);}
};2.2 线性表的顺序表示和实现;2.2.1 顺序表的表示;线性表顺序存储特点:;线性表的顺序存储结构示意图;例4:一个一维数组M,下标的范围是0到9,每个数组元素用相邻的5个字节存储。存储器按字节编址,设存储数组元素M[0]的第一个字节的地址是98,则M[3]的第一个字节的地址是;线性表的顺序存储结构定义(静态);2.2.2 顺序表的实现(或操作);1)插入:在线性表的第i个位置前插入一个元素,
使长度为n的线性表变为长度为n+1的线性表。;程序实现:
Status ListInsert_Sq(SqList L, int i, ElemType x)
{ //在线性表L的第i个元素
您可能关注的文档
- 现代物流采购与仓储管理.pptx
- 现代物流储配作业优化方案设计课件.pptx
- 现代物流的构成要素课件.pptx
- 现代物流对我国钢铁生产与流通模式的影响讲义.pptx
- 现代物流发展报告探讨.pptx
- 现代物流概论.pptx
- 现代物流管理的基础与相关业务.pptx
- 现代物流管理课件.pptx
- 现代物流管理现代采购管理概述.pptx
- 现代物流管理与供应链管理.pptx
- 20250826上交所和顺石油2025年半年度报告168963kb.docx
- 石油化工行业研究中国沙特伊朗天作之合!国金证券366mb.docx
- 20250420东吴证券石油化工行业大炼化周报国际油价先涨后跌长丝市场产销持续低位342mb.docx
- 20250922国贸期货液化石油气(LPG)投资周报利润负反馈效应凸显PG价格震荡回落271mb.docx
- 20250513IEA2025年四月度石油和天然气数据审查(英)201mb.docx
- 20230908港交所中港石油二零二三年中期报告272mb.docx
- KROLL全球石油和天然气并购展望——2025年第一季度(英)364mb.docx
- 20220908港交所海峡石油化工中期报告2022473mb.docx
- KROLL2024年第二季度全球石油和天然气并购展望423mb.docx
- 20240929IEA2024年9月度石油和天然气数据审查(英)231mb.docx
原创力文档


文档评论(0)