- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第9章 数据结构与算法基础
9.1 数据结构与算法概述
9.2 线性表
9.3 栈和队列
9.4 树和二叉树
9.5 图
9.6 排 序
9.7 查 找
本章小结
习题九
第一页,共二百八十四页。
9.1 数据结构与算法概述
9.1.1 数据结构的相关概念
实践证明,要想更有效地使用计算机,仅仅掌握计算机语言而缺乏数据结构和算法的有关知识,是难以处理诸多复杂应用问题的。
早期的计算机主要解决纯数值计算的问题,以此为加工对象的程序设计称为数值型程序设计。其涉及的操作对象比较简单,其一般为整型、实型数据等。
第二页,共二百八十四页。
后来,随着计算机应用领域的不断拓宽,解决非数值计算的问题越来越引起人们的关注。例如,金融管理、文献检索、计算机辅助设计等。这些问题主要集中于对数据集合中的各元素以各种方式进行运算,如插入、更新、删除、查找等。在此涉及的数据类型比较复杂,而且数据元素之间具有各种特定的联系,所以,如果了解了数据集合中元素之间的关系以及如何组织和表示这些数据,就能大大提高计算机处理问题的效率。
第三页,共二百八十四页。
数据结构是一门研究非数值运算的程序设计问题的学科,它包含以下3个方面的内容:
(1)数据集合中各数据元素之间的逻辑结构。
(2)对数据进行处理时,各数据元素在计算机中的存储(物理)结构。
(3)对数据的抽象运算。
1.数据(data)
数据是反映客观事物信息符号的集合,也是计算机程序要加工的对象。这个集合中包括客观事物
第四页,共二百八十四页。
的数值、字符以及能够输入到计算机中并被计算机程序处理的符号。
计算机发展初期,由于计算机主要用于数值计算,数据指的就是数值。随后由于计算机应用的普及,数据的含义也比原来变得更加广泛。如文字、表格、声音、图形、图像等都属于数据的范畴。
2.数据元素(data element)
数据元素是数据集合中的客体(个体),是数据的基本单位,有时也称为节点或记录。例如数据
第五页,共二百八十四页。
集合N={1,2,3,4,5}中整数1~5都是数据元素。每个数据元素的表现形式是由一个或多个数据项组成的。数据项是具有独立含义的最小标识单位,例如,在老师档案信息管理中的每一位老师就是一个数据元素,组成它的数据项可以是姓名、性别、年龄等。
3.数据对象(data object)
数据对象是具有相同特性的数据元素的集合,是数据的一个子集。例如,一周中的7天就是一个
第六页,共二百八十四页。
数据对象,可表示为集合W={Mon,Tue,Wed, Thu,Fri,Sat,Sun};再如,字母数据对象可表 示为集合C={‘A’,‘ B ’,…,‘Z’}。
4.数据类型(data type)
数据类型是一个值的集合和定义在该值集上的一组操作的总称。程序中出现的每一个变量必须与一个而且只能与一个数据类型相联系,它不仅规定了该变量可以设定的值的集合,还规定了该集合上的运算。各种语言规定了它所允许的数据类型。
第七页,共二百八十四页。
在C语言中,基本数据类型包括整型、实型等,这些变量的值是不可再分的;而构造类型包括数组、结构体等,这些变量的值是可以再分的,也可以说它们是带结构的数据,它们的成分可以是基本数据类型,也可以是构造数据类型等。
5.数据结构(data structure)
数据结构指的是数据之间的相互关系,即数据的组织形式。
可以用集合论的方法定义数据结构如下:
第八页,共二百八十四页。
S=(D,R)
D={ai|ai∈ElemSet,i=0,1,2,3,…,n,n≥0}
R={ai-1,ai|ai-1,ai∈D,2≤i≤n}
数据结构S是一个二元组,其中D是一个数据元素的有限集合,R是定义在关系D上的有限集合,即R是由有限个关系所构成的集合。若n=0时,则D是一个空集。
数据结构分为逻辑结构与物理结构两种。
第九页,共二百八十四页。
(1)数据的逻辑结构。数据的逻辑结构就是数据元素间的逻辑关系,它研究的是数据元素及其关系的数学特性,与数据的存储无关,是独立于计算机的。
数据的逻辑结构可概括地分为线性结构和非线性结构两种,如图9.1.1所示。
图9.1.1 数据的逻辑结构
第十页,共二百八十四页。
线性结构的逻辑特性是有且仅有一个开始元素和一个终结元素,除第一个元素以外,其他元素有且仅有一个直接前驱;除最后一个元素外,其他元素都有且仅有一个直接后继。
非线性结构的逻辑特性是一个元素可能有多个直接前驱和直接后继。
线性结构主要有线性表、栈和队列等,而非线性结构分为树型结构和图型结构等。
第十一
文档评论(0)