- 1、本文档共35页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第1章绪论总体要求:理解什么是数据、数据对象、数据元素、数据结构理解数据的逻辑结构与物理结构和逻辑结构与物理结构间的关系理解什么是数据类型、抽象数据类型理解算法的定义、算法的特性、算法的时间代价和算法的空间代价熟悉用C语言描述算法的方法,能够使用C语言编写程序核心技能点:具有抽象数据的能力具有C语言编程的能力具有算法的时间代价和算法的空间代价静态分析能力1
第1章绪论2扩展技能点:抽象数据类型的应用能力算法的时间代价和算法的空间代价方法应用实际的能力相关知识点:C语言的基本语句C语言函数的编写格式及功能C语言标识符的命名规则C语言类型定义数学极限的知识
第1章绪论3学习重点:熟练掌握算法的定义、算法的特性、算法的时间代价和算法的空间代价分析掌握数据的逻辑结构与物理结构和逻辑结构与物理结构间的关系熟悉用C语言描述算法的方法
第1章绪论41.1数据结构的概念及分类1.1.1数据与数据结构数据(Data)是信息的载体,是描述客观事物的数、字符,以及所有能输入到计算机中并被计算机程序识别和处理的符号的集合。数据大致可分为两类:一类是数值性数据,包括整数、浮点数、复数、双精度数等,主要用于工程和科学计算,以及商业事务处理;另一类是非数值数据,主要包括字符和字符串,以及文字、图形、图像、语音等的数据。从传统的观点来看,在解决应用问题时,总把数据按其性质归类到一些称之为数据对象(DataObject)的集合中。在数据对象中所有数据成员,即数据元素,都具有相同的性质,它们是数据的子集。例如,整数数据对象可以是集合N={0,1,2,3,…}。英文字母数据对象可以是集合LETTER={A,B,…,Z}。
第1章绪论5综合考虑数据对象及其所有数据成员之间的关系,就可得到数据结构的定义:据结构由某一数据对象及该对象中所有数据成员之间的关系组成。记为:DataStructure={D,R}其中,D是某一数据对象,R是该对象中所有数据成员之间的关系的有限集合。
第1章绪论61.1.2数据结构的分类依据数据成员之间关系的不同,数据结构分为两大类:线性结构和非线性结构。线性结构也称为线性表,在这种结构中所有数据成员(也称为数据元素)都按某种次序排列在一个序列中,如图1.2所示。对于线性结构中每一数据元素,除第一个元素外,其它每一个元素都有一个且仅有一个直接前驱,第一个数据元素没有直接前驱;除最后一个元素外,其他每一个元素都有一个且仅有一个直接后继。
第1章绪论7图1.2线性结构中各数据成员之间的线性关系
第1章绪论8在非线性结构中各个数据成员不再保持在一个线性序列中,每个数据成员可能与零个或多个其他数据成员发生联系。根据关系的不同,可分为层次结构和群结构。层次结构是按层次划分的数据元素的集合,指定层次上的元素,可以有零个或多个处于下一个层次上的、直接的所属下层元素。在第7章将重点讨论树形结构,它是典型的层次结构。树中的元素叫做结点。树可以为空,也可以不为空。若树不为空,它有一个叫做根的结点,其他结点都是从它派生出来的。除根以外,每一个结点都有一个处于该结点直接上层的结点。树的结构如图1.3所示。
第1章绪论9图1.3树形结构图1.4群聚集(a)图结构(b)网络结构群结构中所有元素之间无顺序关系。集合就是一种群结构,在本教材中不讨论。在集合中没有重复的元素。另一种群结构就是图结构,如图1.4(a)所示。它是由图的顶点集合和连接顶点的边集合组成。还有一种图的特殊形式,即网络结构。它给每条边赋予一个权值,这个权值指明了在遍历图时经过此边时的耗费。例如,在图1.4(b)中,顶点代表城市,赋予边的权值表示两个城市之间的距离。
第1章绪论101.2抽象数据类型1.2.1数据类型在程序设计语言中介绍过各种数据类型。以C语言为例,有5种基本的数据类型:字符型、整型、浮点型、双精度型和无值,分别用保留字char,int,float,double和void标识。这些数据类型不但规定了使用该类型时的取值范围,而且还规定了该类型可以用的一组操作。例如,与整型相关的操作有+,-,*,/,与浮点型相关的操作也有+,-,*,/。然而整型的“/”操作与浮点型的“/”操作虽然形式一样,却是两个不同的操作。如整型运算3/2的运算结果为1,浮点型运算3/2的运算结果为1.5。因为操作“/”用于几个数据类型,故称它是一种重载操作。事实上,数据类型是对数据的取值范围、每一数据的结构,以及允许执行操作的一种描述。
第1章绪论1.2.2数据抽象与抽象数据类型一、抽象数据类型定义(AD
文档评论(0)