- 1、本文档共62页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构 第1章 绪论(2.26).ppt
* * * 例:假设家庭成员组成的数据结构可以表示 成: B=(D,R) D={祖父,叔叔,父亲,儿子,女儿,孙子} R={祖父,父亲,祖父,叔叔,父亲,儿子,父亲,女儿,儿子,孙子} 存储结构 存储结构(又称物理结构)是数据结构在计算机中的表示。逻辑结构在计算机中的存储映象,是逻辑结构在计算机中的实现,它包括数据元素的表示和关系的表示。 逻辑结构与存储结构的关系为:存储结构是逻辑关系的映象与元素本身的映象。逻辑结构是数据结构的抽象,存储结构是数据结构的实现,两者综合起来建立了数据元素之间的结构关系。 一个算法的设计取决于所选定的逻辑结构,而算法的实现依赖于所采用的存储结构。 顺序映象 (顺序存储结构) 顺序映象用元素在存储器中的相对位置表示数据元素之间的 逻辑关系。对应的顺序存储结构中的数据元素存放地址是连续的。 非顺序映象(非顺序存储结构,也称为链式存储结构) 非顺序映像借助指示元素存储地址的指针表示元素之间的逻 辑关系。对应的链式存储结构中的数据元素存放地址是否连续没有要求。 前面描述的存储结构太过抽象,不容易理解,我们可以借用高级程序语言中的“数据类型”来描述它。 比如用一维数组来描述顺序存储结构,用指针来描述链式存储结构。 5. 数据类型(Data Type) 数据类型是一组性质相同的值集合以及定义在这个值集合上的一组操作的总称。数据类型中定义了两个集合,即该类型的取值范围,以及该类型中可允许使用的一组运算。 6. 抽象数据类型(Abstract Data Type,ADT) 抽象数据类型是指一个数学模型以及定义在数学模型上的操作。 数据对象 数据关系 基本操作 抽象:描述数据类型的方法不依赖于具体实现 与存放数据的机器无关 与数据存储的物理结构无关 与实现操作的算法和编程语言均无关 ADT只描述数据对象集和相关操作集“是什么”,并不涉及 “如何做到”的问题。 例4: 线性表的抽象数据类型定义 ADT List{ 数据元素: D={ai| ai∈ElemSet, i=1, 2, …,n, n≥0 , ElemSet为某一数据对象} 数据关系:S={ai, ai+1 | ai, ai+1∈D,i=1, 2, …, n-1} 基本操作: InitList(L): 初始化线性表。 Length(L): 求线性表的表长; Get(L, i): 取线性表的第i个元素; Insert(L, i, b): 在线性表的第i个位置插入元素b; Delete(L, i): 删除线性表的第i个元素。 } ADT List 1.4 算法和算法分析 1. 算法(Algorithm) 算法是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作。 2. 算法的特性 (1) 有穷性:算法中每条指令的执行次数是有限的,执行每条指令的时间也是有限的。 (2) 确定性:组成算法的每条指令是清晰,无歧义的。并且在任何条件下,对于相同的输入,只能得到相同的输出。 (3) 可行性:算法能够成功运行,操作可通过已实现的基本运算执行有限次而完成。 (4) 输入:有多个或0个输入。 (5) 输出: 一个或多个输出。 算法的五大特性中,最基本的是有穷性、确定性和可行性。 3. 算法设计的要求 1) 正确性:设计的算法能够满足具体问题的需求。 算法正确性可以分为4个层次: (1) 设计的程序没有语法错误; (2) 设计的程序对于几组输入数据能够得出满足要求的结果; (3) 设计的程序对于精心选择的典型、苛刻而带有刁难性的几组输入数据能够得到满足要求的结果。 (4) 程序对于一切合法的输入数据都能产生满足要求的结果。 例如以下程序: max = 0; for(i = 1; i = n; i++) { scanf(″%d″, x); if (x max) max = x; } max = 0; for(i = 1; i = n; i++) { scanf(″%d″, x); if (x max) max = x; } 2) 可读性。 可读性是指所编写的算法要有助于人对算法的理解, 晦涩难懂的算法容易出错,而且
您可能关注的文档
最近下载
- 21CS03-3:一体化预制泵站选用与安装(三).docx VIP
- 2025届高考物理考点一轮复习:功能关系 能量守恒定律(解析版).pdf VIP
- 二年级上册语文教案 第七单元.docx VIP
- 快递业务操作规范与流程.pdf VIP
- 用在线乳化技术实现柴油机低温燃烧的研究 the experimental study of online emulsification technology in realizing diesel low- temperature combustion.pdf VIP
- 课桌椅项目实施方案-(范文模板).docx VIP
- 快递服务行业业务查询处理规范.doc VIP
- PDCA循环工作方法培训.pptx VIP
- 快递业务操作规范及投诉处理.doc VIP
- 充电桩采购安装项目售后服务承诺.docx VIP
文档评论(0)