数据结构2ppt课件.ppt

上传人:本田雅阁 文档编号:3185567 上传时间:2019-07-22 格式:PPT 页数:26 大小:2.84MB
返回 下载 相关 举报
数据结构2ppt课件.ppt_第1页
第1页 / 共26页
数据结构2ppt课件.ppt_第2页
第2页 / 共26页
数据结构2ppt课件.ppt_第3页
第3页 / 共26页
数据结构2ppt课件.ppt_第4页
第4页 / 共26页
数据结构2ppt课件.ppt_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《数据结构2ppt课件.ppt》由会员分享,可在线阅读,更多相关《数据结构2ppt课件.ppt(26页珍藏版)》请在三一文库上搜索。

1、(第一讲),绍兴文理学院,计算机系计算机应用教研室,数据结构,为什么要学习 数据结构?,17:59,起始课 、 第1章 绪论(1),一、教学目的:明确数据结构课程在自身发展、应用等远景和本专业知识结构中的地位、作用;明确课程的特点、教学要求、学习方法;明确数据结构所研究的问题以及有关基本概念;明确抽象数据类型的概念和描述方法。,二、教学重点:数据结构课程在自身发展、应用等远景和本专业知识结构中的地位、作用;数据结构所研究的问题以及有关基本概念;抽象数据类型。,三、教学难点:理解数据结构所研究的问题;抽象数据类型。 四、教学过程:,1、应用、科学的思想和方法自身发展及其远景的需要 (1) “校园

2、卡”买饭菜等,1.0 为什么要学习数据结构,17:59,不同的查找,主要用到数据的组织和查找。不同的数据的组织和查找效率是很不一样的,不同的查找方法其效率相差百倍以上乃至千倍。 这是数据的组织和查找问题,在第7章中进行讨论。,(2) 打电话存在0575和05758的城市电话区号吗?,若存在,则057588341511是0575对应城市下面的88341511还是05758对应城市下面的8341511呢? 程控电话如何处理? 又:为什么北京的电话区号是010,而绍兴的区号是0575? 这是利用树结构的编码问题,在第5章中进行讨论。,(3) 高考分数的排名以便录取,在第8章中进行讨论。 (4) 快递

3、线路、运费最省、最短旅行线路等问题,17:59,在计算机系统软件和应用软件中排序的使用频度很高。然而不同的排序方法排序效率是很不一样的。其排序效率相差百倍以上。,不同的排序,这是图结构问题,在第6章中进行讨论。,最短路径,(5) 管线、道路连通的最少代价问题 这是图结构问题,在第6章中进行讨论。,(6) 工程计划问题,这是图结构问题,在第6章中进行讨论。,关键路径,3、是后续课程和软件技术基础的需要 数据结构是操作系统、软件工程、计算机网络、编译原理、数据库等信息技术相关专业主要课程的先修课程; 是掌握一定的算法理论、数据组织和处理技术、提高编程技能和提高实践动手能力需要。 4、是培养科学的思

4、想和方法,整体把握利用计算机解决问题的需要,有人设想将常用的数千个汉字进行全排列,用这些字写出的不朽诗篇,名言佳句将都在其中了。,每年按365天,每天24小时,每小时3600秒,对于每秒能生成108个排列的超高速电子计算机,即使一年到头从不休息地工作也需要:3.041064/(365243600108)9.641049 (年)。所以有些问题是计算机根本不能解决的。,但就当n=50时,有n!3.04 1064,(7) 问题规模的判断时间和空间复杂度问题,17:59,算法复杂度,2、是考研的需要,(1) 现实世界:现实中的事物和问题。 (2) 信息世界:把现实世界中的事物和问题经过分析、抽象、归纳

5、、整理后得到的逻辑意义上的事物和问题的数据和数据关系。 (3) 机器世界:把信息世界里的数据和数据关系,组织并存储到计算机里,通过计算机来处理事物和解决问题。,6、计算机求解问题的步骤:,实际问题,问题模型,机器模型,求解算法,编制程序,问题实现,分析 抽象,分析 归纳,模型 求解,命令 编程,调试 程序,5、三个世界,17:59,数据结构是三个世界的纽带 数据结构的知识和技能对现实世界的分析到信息世界提供直接而重要的帮助,结合编程工具,实现由信息世界到机器世界的转换,是实现用计算机来解决问题强有力的支撑。,1.1 数据结构的研究内容,数据结构主要研究非数值计算问题,非数值计算问题无法用数学方

6、程建立数学模型。,例1 书目自动检索系统,书目文件,按书名,按作者名,按分类号,索引表,1、数据结构的研究内容,17:59,例2 人机对弈问题,17:59,“深蓝”与卡斯帕罗夫对弈, 国际象棋棋盘有64格,每方有16个子。棋手在思考下一步棋时大约有35种合法选择。 目前最好的国际象棋程序可以分析到七八个回合,若要求电脑能思考到第七个回合,即14步棋,则需要有3514种可能的结局。, 下棋程序靠的是基本的行棋知识和强大无比的检索演算能力。这种信息检索选择方式好比一棵树;共有35个枝干,每个枝干有35个树叉,最终到树叶,即可供选择的结果。越好的程序,所派生的树枝树叉就越多。 一般来讲,电脑每下一步

7、棋,仍需有500亿或600亿种选择。,例3 文件系统的系统结构图,17:59,v5,v1,v2,v3,v4,v6,例4 最短管道连通问题,17:59,2、课程的地位和性质 沃思(N.Wirth)的一个著名公式: 数据结构+算法=程序(获1984年计算图灵奖)。 (1) 地位:计算机科学与技术专业等信息类专业的核心课程;信息类软件方向硕士研究生入学考的必考科目。 (2) 性质:算法设计基础和软件技术的重要专业理论与技术基础课。,3、数据结构的产生和发展,为了研究数据的特性,数据之间的关系,数据的存储表示及其算法等,发展了数据结构。 国外从1968年开始作为一门独立的课程。 1968年美国唐欧克努

8、特教授开创了数据结构的最初体系,他所著的计算机程序设计艺术第一卷(基本算法)是第一本较系统地阐述数据的逻辑结构和存储结构及其操作的著作。 4、课程学习的特点和要求 (1) 课程学习的特点:我们学习的是基础的、常用的和比较成熟的基本数据结构,目的是掌握这些数据结构及算法并付之应用。 (2) 课程学习要求: 树立学好的信心,上课注意听,课前预习,课后复习,加强分析,多上机练习,多问,独立完成作业及上机实验。 (3) 课程网站:http:/ (4) 师生互动中的用户名:学号,密码:XXXX,17:59,(5) 教材:数据结构(C语言版) 严蔚敏等编著 人民邮电出版社 2011年,参考书:数据结构(C

9、语言版) 严蔚敏等编著 清华大学出版社 1997年 数据结构许卓群等编著 高等教育出版社 1987年 数据结构题集严蔚敏等编著 北京 清华大学出版社 1999年 数据结构(C语言篇)习题与解析 李春葆编著 清华大学出版社 2002年 数据结构唐策善等编著 高等教育出版社 1996年,1.2 基本概念和术语 1.2.1 数据、数据元素、数据项和数据对象 1、数据(Data):能输入到计算机并被计算机程序处理的符号总称。 2、数据元素(Data Element):数据的基本单位,可以是若干个数据项(最小单位)组成。通常作为一个整体进行考虑和处理。,17:59,3、数据项(Data Item):是组

10、成数据元素的、有独立含义的、不可分隔的最小单位。,17:59,4、数据对象(Data Obiect):性质相同的数据元素的集合。 1.2.2 数据结构 相互之间存在一种或多种特定关系的数据元素的集合。 北大许卓群等编著教材上的定义:按某种逻辑关系组织起来的一批数据,按一定的存储表示方式把它存储到计算机的存储器中,并在这些数据上定义了一个运算的集合,叫做一个数据结构。 数据结构综合三方面的内容:数据的逻辑结构,数据的存储结构及其运算。且不涉及元素本身的内容。 1、逻辑结构 数据的逻辑结构是从逻辑关条上描述数据,它与数据的存储无关,是独立于计箅机的。 数据的逻辑结构有两个要素:一是数据元素;二是关

11、系。,集合:“同一集合”关系,线性结构:一对一关系,树形结构:一对多关系,图状或网状结构:多对多关系,(1) 四类基本结构,17:59,数据的逻辑结构,线性结构,非线性结构,线性表,树结构,图结构,一般线性表,特殊线性表,线性表的推广,树,二叉树,有向图,无向图,线性表,栈与队列,字符串,数组,广义表,(2) 几种逻辑结构层次图,17:59,2、存储结构,数据对象在计算机中的存储表示称为数据的存储结构,也称为物理结构。 数据元素在计算机中有两种基本的存储结构,分别是顺序存储结构和链式存储结构。 (1) 顺序存储结构 顺序存储结构是借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系,通常借

12、助程序设计语言的数组类型来描述。 学生基本信息表,对应的顺序存储结构如下。,17:59,(2) 链式存储结构,借助指示元素存储地址的指针表示数据元素之间的逻辑关系。 学生基本信息表,对应的链式存储结构如下。,17:59,更直观的图示表示如下:,1.2.3 数据类型和抽象数据类型,1、数据类型(Data Type) 是一个值的集合和定义在这个值集上的一组操作的总称。 2、抽象数据类型(Abstract Data Type,ADT) 指由用户定义的、表示应用问题的数学模型,以及定义在这个模型上的一组操作的总称,具体包括三部分:数据对象,数据对象上关系的集合,以及对数据对象的基本操作的集合。,17:

13、59,即: 抽象数据类型可以用以下的三元组来表示: ADT = (D,S,P) 数据对象 D上的关系集 D上的操作集,抽象数据类型的定义格式如下:,ADT 抽象数据类型名 数据对象: 数据关系: 基本操作: ADT抽象数据类型名(变量),基本操作的定义格式为: 基本操作名(参数表) 初始条件: 操作结果: 参数两种:赋值参数:提供输入 引用参数:以&打头,17:59,1.3 抽象数据类型的表示与实现 抽象数据类型独立于具体实现,将数据和操作封装在一起,使得用户程序只能通过抽象数据类型定义的某些操作来访问其中的数据,从而实现了信息隐藏。 抽象数据类型和类的概念实际上反映了程序或软件设计的两层抽象

14、:抽象数据类型相当于在概念层(或称为抽象层)上描述问题,而类相当于在实现层上描述问题。, 用类C语言描述算法的说明(P8P9),例 抽象数据类型复数的表示与实现 (1) 定义部分: ADT Complex 数据对象:D=el,e2el,e2R,R是实数集 数据关系:s=el是复数的实部,e2是复数的虚部 基本操作: Creat(&C,x,y) 操作结果:构造复数C,其实部和虚部分别被赋以参数x和y的值。 GetReal(C) 初始条件:复数C已存在。 操作结果:返回复数C的实部值。,17:59,GetImag(C),初始条件:复数C已存在。 操作结果:返回复数C的虚部值。 Add(Cl,C2)

15、 初始条件:Cl,C2是复数。 操作结果:返回两个复数Cl和C2的和。 Sub(Cl, C2) 初始条件:Cl,C2是复数。 操作结果:返回两个复数Cl和C2的差。 ADT Complex (2) 表示部分: typedef struct / 复数类型 float Realpart; / 实部 float Imagepart; / 虚部 Complex;,17:59,(3) 实现部分:,void Creat( ,17:59,Complex Add(Complex Cl, Complex C2)/求两个复数Cl和C2的和sum,Complex sum; sum.Realpart=Cl.Realpart+C2.Realpart; sum.Imagepart=Cl.Imagepart+C2.Imagepart; return sum: Complex Sub (Complex Cl, Complex C2) /求两个复数Cl和C2 的差difference Complex difference; difference.Realpart=Cl.Realpart-C2.Realpart; difference.Imagepart=Cl.Imagepart-C2.Imagepart; return difference; ,17:59,17:59,五、作业:,书面作业:P16:5,?,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1