- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构ppt.ppt
第一章 绪论 1.1 什么是数据结构 1.2 基本概念 1.3 抽象数据类型 1.4 算法及其分析 学习提要 掌握本课程所涉及到的基本名词、术语和概念,特别是数据的逻辑结构和存储结构之间的关系及性质。 了解抽象数据类型的定义、表示和实现方法。 理解算法设计的五个要素和基本要求;掌握算法效率的度量方法,着重学习算法的时间复杂度分析。 教学重点 ⑴数据、数据元素、数据项; ⑵逻辑结构和存储结构在概念上的联系与区别; ⑶数据结构及其三个组成部分; ⑷抽象数据类型和数据抽象; ⑸评价算法优劣的标准及方法。 1.1什么是数据结构 一、为什么要学习数据结构? 1、电子计算机的主要用途: ?早期: 主要用于数值计算。 ?后来: 处理逐渐扩大到非数值计算领域(能处理多种复杂的具有一定结构关系的数据)。 用计算机解决问题的过程 引 例 十字路口的交通灯管理问题的数学模型 求解非数值计算的问题: 主要考虑的是设计出合适的数据结构及相应的算法。 即:首先要考虑对相关的各种信息如何表示、组织和存储? 因此,简单说来,数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和操作的学科。 问题:学习数据结构有什么用? 答:计算机内的数值运算依靠数学方程,而非数值运算(如表、树、图等)则要依靠数据结构。 同样的数据对象,用不同的数据结构来表示,运算效率可能有明显的差异。 程序设计的实质是对实际问题选择一个好的数据结构,加之设计一个好的算法。而好的算法在很大程度上取决于描述实际问题的数据结构。 《算法+数据结构=程序》 ①提高复杂程序设计的能力 ②培养算法设计能力 ③为后继课程(如操作系统、编译原理等)打基础。 数据结构课程的形成和发展 形成阶段 60年代初期,“数据结构”有关的内容散见于操作系统、编译原理和表处理语言等课程。 1968年,美唐?欧?克努特教授开创了数据结构的最初体系,《计算机程序设计技巧》第一卷《基本算法》 ,“数据结构”被列入美国一些大学计算机科学系的教学计划。 发展阶段: 数据结构的概念不断扩充,包括了网络、集合代数论、关系等“离散数学结构”的内容。 70年代后期,80年代初,我国高校陆续开设该课程。 《数据结构课程》所处的地位: 1.2 基本概念和术语 1.2.1基本概念 数据(data): 数据是信息的载体,是描述客观事物的数、字符、以及所有能输入到计算机中并被计算机程序识别和处理的符号的集合, 是计算机程序加工的”原料”。 分类: 数值性数据 非数值性数据 2、数据元素(data element) 3、数据对象(data object) 4、数据结构(data structure) 数据结构是相互之间存在一种或多种特定关系的数据元素的集合。 在任何问题中,数据元素都不是孤立存在的,而是在它们之间存在着某种关系,这种数据元素相互之间的关系称为结构(Structure)。 数据结构是一堆数据元素和这些数据元素之间的关系的总和。 按数据元素之间关系的不同特性,通常有4类基本结构 (1)集合 结构中的数据元素除了“同属于一个集合”外,别无其它关系。 (2)线性结构 结构中的数据元素之间存在一对一的关系。 (3)树型结构 结构中的数据元素之间存在一对多的关系。 (4)图状结构或网状结构 结构中的数据元素之间存在多对多的关系。 数据结构的形式定义 用一个二元组表示,记为: Data_Structure = (D, S) 其中,D 是数据元素的有限集(即一个数据 对象),S 是该对象中所有数据成员之间的关系的有限集合。 例、用数据结构如何描述2行3列矩阵: 它是一个含6个数据元素{a1,a2,a3,a4,a5,a6} 的集合,且集合上存在“行关系”和“列关系”两个次序关系,其中 行关系为 {a1,a2,a2,a3,a4,a5,a5,a6} 列关系为 {a1,a4,a2,a5,a3,a6}。 x,y 意为 x 和 y 之间存在 x领先于y 的次序关系。 例1-5 假设我们需要编制一个事务管理的程序,管理学校科学研究课题小组的各项事务,则首先要为程序的操作对象——课题小组设计一个数据结构。假设每个小组由一位教师、一至三名研究生及一至六名本科生组成,小组成员之间的关系是:教师指导研究生,而由每位研究生指导一至两名本科生。 则可以如下定义数据结构: Group = (P,R) 其中: P = {T,G1,…,Gn,S11…Snm} 1=n=3,1=
文档评论(0)