Chap1-数据结构.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Chap1-数据结构

小 结 * 算法设计的重要性: 例1:从n个数中找出第k大的那个数 例2:百钱买百鸡问题 第一章 绪 论 程序设计的要求: 1。正确性 2。有效性 3。可维护性 4。可靠性 5。可重用性(包括可移植性) 6。简明性 数学 代数系统 编码理论 算子关系 数据类型 数据表示法 数据的运算 数据结构 数据存取 机器组织 文件系统 数据组织 信息检索 存储装置 硬件 (计算机系统 设计) 软件 (计算机程序 设计) “数据结构”所处的地位 用计算机解决问题的步骤: 问题分析:这阶段的任务是弄清所要解的问题是什么; 并且把它用一种语言(自然语言、说明语言或数 学语言)清楚地描述出来。 算法设计:这阶段的任务是建立程序系统的结构,重点 是算法的设计和数据结构的设计。对于大型的复 杂的程序系统,这一阶段往往还包括模块的设计。 程序设计:采用适当的程序设计语言,编写出可执行的 程序。 程序测试和维护:发现和排除在前几个阶段中产生的错 误,经测试通过的程序便可投入运行,在运行过 程中还可能发现隐含的错误和问题,因此还必须 在使用中不断维护和完善。 1.1问题求解 问题分析示例 为了设计一个交通信号灯的管理系统,首先需要分析一下所有车辆的行驶路线的冲突问题。这个问题可以归结为对车辆的可能行驶方向作某种分组,对分组的要求是使任一个组中各个方向行驶的车辆可以同时安全行驶而不发生碰撞。 根据这个路口的实际情况可以确定13个可能通行方向:A→B,A→C,A→D,B→A,B→C,B→D,D→A,D→B,D→C,E→A,E→B,E→C,E→D。可以把A→B简写成AB,用一个结点表示 ,在不能同时行驶 1.1.1问题分析 的结点间画一条连线(表示它们互相冲突),便可以得到如右图所示的表示。这样得到的表示可以称之为“图” 。 如果把上图中的一个结点理解为一个国家,结点之间的连线看作两国有共同边界,上述问题就变成著名的“着色问题”:即求出最少要几种颜色可将图中所有国家着色,使得任意两个相邻的国家颜色都不相同。 通过上面的分析,我们就获得了该交通管系统的数学模型,下面就可以着手进行算法的设计。 1.1.2程序设计 一、算法设计 1。穷举法 2。贪心法 二、程序设计 首先,为问题中所有有关数据设计适当的表示形式,不仅包括需要表示的结点和连接,可能还有为计算过程的实现而用的辅助性数据结构。 然后选择一种适当的程序设计语言实现这些数据结构,并在设计好的数据结构上精确地描述上面提出的算法,完成一个程序,使之能在计算机上运行。 假设需要着色的图是G,集合V1包括图中所有未被着色的结点,着色开始时V1是G所有结点集合。NEW表示已确定可以用新颜色着色的结点集合。从G中找出可用新颜色着色的结点集的工作可以用下面的程序框架描述: ? 置NEW为空集合;  for 每个v ? V1 do   if v与NEW中所有结点间都没有边     从V1中去掉v ; 将v加入NEW ; 这个程序片段里涉及对集合和图的操作,包括由集合中去掉一个元素,向集合里增加一个元素,检查两个结点之间在图中是否有边连接等。有了这些结构和操作,程序的实现非常简单。 但是,常见程序设计语言并不直接支持图和集合等数据结构,通常只提供了一些基本数据类型(例如整数、实数、字符等)和一些数据构造手段(例如数组、记录、指针等)。要解决这个计算问题,我们必须自己用选定的语言所提供的机制实现这些结构(集合、图等)和操作(对集合的元素增删、对图的边的判断等),这些正是本课程将要讨论的基本内容。 1.2 数据结构 数据结构主要关心的是下面三个方面 : 1。结构中各元素之间的逻辑关系 线性结构:如图书馆的书目索引 树形结构: 图形结构: 2。结构中各元素的存储方式 3。结构具有的行为特征 例2: 问题:计算机和人对弈 模型:树形结构 树形结构 返回 例3: 问题:多叉路口交通灯的管理 模型:图形结构 图形结构 返回 1.2.1基本术语 数据(Data):在计算机科学中是至所有能输入到计算机中并 被计算机程序处理的符号的总称。 数据元素(Data Element):数据的基本单位,在计算机程序 中通常作为一个整体进行考虑和处理。 一个数据元素可以由若干个数据项(Data Item)组成。 数据对象(Data Object):是性质相同的数据元素的集合。 数据结构(Data Structure):是相互之间存在一种或多种特 定关系的数据元素的集合。 逻辑结构:表示数据元素之间的逻辑关系。 物理结构:数据结构在计算机中的表示(影响),又称存 储结构。 数据类型(Data Type):是一个值的集合和定义在这个值 集上的一组操作的总称。 原子类型(Ato

文档评论(0)

asd522513656 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档