- 1、本文档共35页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构与算法C1.ppt
第一章 概述 这一章,我们重点概述数据结构中一些基本概念和基本方法,是以后各章的重要基础。 1.1 数据结构的兴起与发展 数据结构问题起源于程序设计的发展。程序设计现在已经历了三个阶段: 无结构阶段 结构化程序设计阶段 面向对象阶段 计算机应用系统中有两个关键问题: 表示:对象/实体及其关系在计算机中的表示。只有对象及其相互关系已存储(表示)在计算机中,才能被进一步处理; 操作:对对象/实体进行处理、访问 [例] 解一元二次方程ax2+bx+c=0. 利用计算机解此方程,第一个问题就是如何在计算机中表示该方程。分析该方程,可知决定方程的是方程的三个系数值:a、b、c(在a≠0情况下,实际上只决定于一次项系数和常数项),而它们的次序表示它们分别属于那一项,其他符号是为增加可读性而引入的,因此,可用这三个系数的线性排列在计算机中表示该方程。例如, 3x2-x+1=0表示为(3, -1, 1) x2-3=0 表示为(1, 0, -3) [例] 计算机管理家谱。 家谱管理主要实现家庭成员的登记、查询及变更处理等。为突出主题,我们这里假定只考虑家庭中的父子关系。在这个问题中,实体对象是人(家庭成员),关系是父子关系。每个实体用一个记录(元素)表示,包含姓名、出生日期、性别、死亡日期等。为了表示父子关系,在实体记录中可增加若干字段,每个字段用于指示一个儿子/女儿,这样,一个家族就构成了一个层次结构。在数据结构中,该层次结构称为树。图 1?1给出了一个具体的例子,其中,位于某结点下方的与其相连的各个结点,表示该结点的子女。 归纳起来,数据结构的研究内容为: 为了在计算机上实现具体问题,所需的表示数据/信息及其关系应如何组织(组织起来的数据就具有了结构关系),以及如何对它们进行基本操作。简言之,研究数据的组织方式(结构)及相应的抽象操作。 1.3 数据结构的概念 (1)数据:数据是描述客观事物的信息的符号化,是计算机系统可加工处理的对象(2)数据类型:数据类型定义为: 一个值的集合和定义在这个值集上的一组操作的总称。 (3) 数据元素、数据项:能独立、完整地描述问题世界中的实体的最小数据单位称为数据元素(也称记录)。构成数据元素的不可分割的数据单位,称为数据项。 (4)数据对象:同类数据元素的集合称为数据对象。有了上面几个概念,我们就可以给出数据结构的概念了。 (5)数据结构:我们把数据元素之间的关系称为结构。进一步地,我们称相互之间存在着一定关系的数据元素的集合及定义在其上的基本操作(运算)为数据结构。为了与后面要介绍的存储结构区别,有时也强调地称数据结构为数据的逻辑结构。 如果不考虑定义在数据结构上的操作,则数据结构也可借助集合论述语定义为: 数据结构是一个二元组(D,S),其中D是数据元素的有限集,S是D上的关系的有限集。 在这个定义中,数据元素之间的关系采用集合论中关系的形式化描述方法来定义。型为d1, d2的二元关系中,我们称d1为关系的前件,d2为后件。称d2为d1的后继,而d1为d2的前驱。 1.4 数据结构的图示 用小圆圈代表数据元素,用小圆圈之间的连线代表小圆圈对应的数据元素之间的关系,如果强调关系的方向性,可用带箭头的线段表示关系。具体地讲,若d1和d2表示两个数据元素,它们具有关系<d1,d2>,则表示为 1.5 数据结构的分类 1.5.1 集合 如果数据结构中,数据元素之间不考虑关系问题(无前驱/后继之分),则称这种结构为集合。 在集合中,各元素是“平等”的,它们的共同关系是:都属于同一个集合。 1.5.2 线性结构 如果数据结构中,数据元素之间只存在前后顺序关系(每个元素都有唯一前趋和后继,第一个元素可以没有前驱,最后一个可以没有后继),则称这种结构为线性结构。 线性结构是一种最常见的数据结构。线性表、栈、队列、串等均为线性结构。 下图表示的数据结构可表示为: DS=(D, S) D={d1, d2, …, dn} S={ r } r={d1, d2, d2, d3 , …, dn-1, dn} 1.5.3 树形结构 如果除一个特殊元素没有前驱外,其他每个元素都有唯一的前驱(后继个数不限),则称该结构为树型结构(简称树)。其中,将无前驱的元素称为树根。 用图表示树时,通常习惯将树根画在最上面。某元素的各后继画在该元素的下面,且连线不带箭头,隐含着从上到下。这样,树型结构就象用一棵倒立的树。 图 1?1就是一个树的例子,它代表的结构的形式描述为: DS= ( D, S) D = {W1, W11, W12, W13, W111, W121, W122, W131, W132, W133, W1111, W1112, W1221} S = {r} r = {W1,
文档评论(0)