数据结构课件第一章.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《数据结构课件第一章.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课件 第一章
- 资源描述:
-
1、1数据结构数据结构(C语言版语言版) Data Structure主讲教师主讲教师 秦俊平秦俊平 2 数据结构的概念数据结构的概念 算法的概念和描述算法的概念和描述 算法的简单分析算法的简单分析3&电子计算机的主要用途:电子计算机的主要用途: 早期:早期: 主要用于数值计算。 后来:后来: 处理逐渐扩大到非数值计算领域(能处理多种复杂的具有一定结构关系的数据)。4& 数值计算解决问题的一般步骤:数值计算解决问题的一般步骤: 数学模型选择计算机语言编出程序测试最终解答。 数值计算的关键是:数值计算的关键是: 如何得出数学模型(方程) 程序设计人员比较关注程序设计的技巧。& 非数值计算问题:非数值
2、计算问题: 数据元素之间的相互关系一般无法用数学方程加以描述5 例例1.1 电话号码查询问题:电话号码查询问题: (1)按顺序存储方式:须遍历表 (2)按姓氏索引方式:索引 (3)按号码 要写出好的查找算法,取决于这张表的结构及存储方式。 电话号码表的结构和存储方式决定了查找(算法)的效率。 非数值计算问题:非数值计算问题:6 例1.2 磁盘目录的描述7 例例1.3 田径赛的时间安排问题(无向图的着色田径赛的时间安排问题(无向图的着色问题)问题) : 设有六个比赛项目,规定每个选手至多可参加三个设有六个比赛项目,规定每个选手至多可参加三个项目,有五人报名参加比赛(如下表所示)设计比赛项目,有五
3、人报名参加比赛(如下表所示)设计比赛日程表,使得在尽可能短的时间内完成比赛。日程表,使得在尽可能短的时间内完成比赛。8 解法:解法: (1)设用如下六个不同的代号代表不同的项目:)设用如下六个不同的代号代表不同的项目: 跳高 跳远 标枪 铅球 100米 200米 A B C D E F (2)用顶点代表比赛项目用顶点代表比赛项目 不能同时进行比赛的项目之间连上一条边。 (3)某选手比赛的项目必定有边相连(不能同时比赛)某选手比赛的项目必定有边相连(不能同时比赛)姓名项目1项目2项目3丁一 A B E马二 C D 张三 C E F李四 D F A王五 B F9丁一马二张三李四王五100M200M
4、标枪铅球跳高跳远10姓名项目1项目2项目3丁一 A B E马二 C D 张三 C E F李四 D F A王五 B F比赛时间比赛项目1A,C2B,D3E4FBAEFDC 只需安排四个单位时间进行比赛11&求解非数值计算的问题:求解非数值计算的问题: 主要考虑的是设计出合适的数据结构及相应的算法。 即:首先要考虑对相关的各种信息如何表示、对相关的各种信息如何表示、组织和存储组织和存储 因此,可以认为:数据结构是一门研究非数值数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及计算的程序设计问题中计算机的操作对象以及它们之间的关系和操作的学科。它们之间的关系和操作的学科。12&数据结构
5、课程的形成和发展:数据结构课程的形成和发展: 形成阶段:形成阶段: 60年代初期,“数据结构”有关的内容散见于操作系统、编译原理和表处理语言等课程。1968年,“数据结构”被列入美国一些大学计算机科学系的教学计划。 发展阶段:发展阶段: 数据结构的概念不断扩充,包括了网络、集合代数论、关系等“离散数学结构”的内容。1370年代后期,我国高校陆续开设该课程。 数据结构课程数据结构课程所处的地位:所处的地位:14&数据结构的几个相关概念:数据结构的几个相关概念:数据(Data):是对信息的一种符号表示。在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。数据元素(Data Ele
6、ment):是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。一个数据元素可由若干个数据项组成。数据项是数据的不可分割的最小单位。数据对象(Data Object):是性质相同的数据元素的集合。是数据的一个子集。15数据类型:在一种程序设计语言中,变量所具有的数据种类。例1、 在FORTRAN语言中,变量的数据类型有整型、实型、和复数型 例2、在C语言中数据类型:基本类型和构造类型基本类型:整型、浮点型、字符型构造类型:数组、结构、联合、指针、枚举型、自定义16&什么是数据结构?什么是数据结构?&定义定义1-是相互之间存在一种或多种特定关系的数据元素的集合。&定义定义2- 按某种
7、按某种逻辑逻辑关系关系组织起来的一批数据(或称带结构的数据元素的集合)应用计算机语言并按一定的按一定的存储存储表示方式表示方式把它们存储在计算机的存储器中,并在其上定义了一个在其上定义了一个运算运算的的集合。集合。17&数据结构的三个方面的含义:数据结构的三个方面的含义:&逻辑结构逻辑结构- 数据元素间抽象化的相互关系(简称为数据结构)。 与数据的存储无关,独立于计算机,它是从具体问题抽象出来的数学模型。&存储结构(物理结构)存储结构(物理结构)- 数据元素及其关系在计算机存储器中的存储方式。 是逻辑结构用计算机语言的实现,它依赖于计算机语言。&运算(算法)运算(算法)18&数据结构的三个方面
8、的含义之:数据结构的三个方面的含义之:&逻辑结构逻辑结构-划分方法一划分方法一 (1)线性结构线性结构- 有且仅有一个开始和一个终端结点,并且所有结点都最多只有一个直接前趋和一个后继。 例如:线性表、栈、队列、串 (2)非线性结构非线性结构- 一个结点可能有多个直接前趋和直接后继。 例如:树、图、多维数组、广义表等。19&逻辑结构逻辑结构-划分方法二划分方法二一、集合 结构中的数据元素除了同属于一种类型外,别无其它关系。二、线性结构 结构中的数据元素之间存在一对一的关系。数据之间存在前后顺序关系(每一个元素都有唯一的前驱和后继,第一个元素可以没有前驱,最后一个可以没有后继)三、树型结构 结构中
9、的数据元素之间存在一对多的关系。除一个特殊元素没有前驱外,其他每个元素都有惟一的前驱,其中无前驱的元素称为树根四、图状结构或网状结构 结构中的数据元素之间存在多对多的关系。任一数据元素均可有多个前驱和后继。20&数据结构的三个方面的含义之:数据结构的三个方面的含义之:&存储结构存储结构 存储结构两方面的内容:存储结构两方面的内容: (1)数据元素自身值的表示(数据域) (2)该结点与其它结点关系的域(链域) 四种基本的存储方法:四种基本的存储方法: (1)顺序存储方法顺序存储方法(结构) (2)链接存储方法链接存储方法(链式存储结构) (3)索引存储方法索引存储方法 (4)散列存储方法散列存储
10、方法 同一种逻辑结构可采用不同的存储方法(以上四种之一或组合),这主要考虑的是运算方便及算法的时空要求。21&逻辑结构、存储结构小结:逻辑结构、存储结构小结:(1)数据的逻辑结构、存储结构和数据的运算(算法)构成了数据结构三个方面的含义。(2)程序设计的实质是对实际问题选择一个好的数据结构,加之设计一个好的算法。而好的算法在很大程度上取决于描述实际问题的数据结构。22&数据结构的三个方面的含义之:数据结构的三个方面的含义之:& 算法算法 所谓算法(所谓算法(Algorithm) 是描述计算机解决给定问题的操作过程(解题方法),即为解决某一特定问题而由若干条指令组成的有穷有穷序列序列。23&算法
展开阅读全文