《数据结构二版》PPT课件.ppt
《《数据结构二版》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《数据结构二版》PPT课件.ppt(53页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据结构数据结构(第二版)(第二版)严蔚敏严蔚敏 吴伟民吴伟民 清华大学出版社清华大学出版社主讲:李树主讲:李树全全 电子科技大学电子科技大学电子科技大学电子科技大学计算机学院计算机学院计算机学院计算机学院第一章第一章 绪论绪论1.1 学习学习的意义及要求的意义及要求 1.2 的主要内容的主要内容 1.3 基本术语基本术语 1.4 算法描述及分析算法描述及分析1.1 学习学习的的意义意义及要求及要求一一.意义意义1.算法和数据结构是算法和数据结构是计算机科学计算机科学的两大支柱的两大支柱 计算机科学早期定义为计算机科学早期定义为计算机科学早期定义为计算机科学早期定义为:研究研究研究研究算法算法
2、算法算法的科学的科学的科学的科学 近期定义为近期定义为近期定义为近期定义为:研究研究研究研究数据数据数据数据的科学的科学的科学的科学1.1 学习学习的的意义意义及要求及要求2.数据结构是程序设计的基础数据结构是程序设计的基础Program=Algorithms+Data StructureProgram=Algorithms+Data Structure数据结构数据结构数据结构数据结构是设计是设计是设计是设计OSOS、DBMSDBMS、编译等编译等编译等编译等系统程序系统程序系统程序系统程序和各种和各种和各种和各种应用程序应用程序应用程序应用程序 的重要基础的重要基础的重要基础的重要基础1.1
3、 学习学习的的意义意义及要求及要求3.是计算机专业的一门综合性是计算机专业的一门综合性专业基础课,是一门理论与实际紧密结合专业基础课,是一门理论与实际紧密结合的基础课。的基础课。是计算机专业本科生必修学位课程是计算机专业本科生必修学位课程是计算机研究生入学考试必考科目是计算机研究生入学考试必考科目是软件人员水平考试内容是软件人员水平考试内容1.1 学习学习的的意义意义及要求及要求4.与计算机科学技术其他相关与计算机科学技术其他相关领域的关系领域的关系数据结构数据结构问题求解问题求解算法理论算法理论数据模型数据模型设计方法设计方法描述语言描述语言1.1 学习学习的意义及的意义及要求要求二二.要求
4、要求1.掌握各类掌握各类基本数据结构类型基本数据结构类型 和相应的和相应的存储存储结构结构2.提高提高阅读阅读 和和编写算法编写算法 的能力的能力3.能针对给定问题,选择相适应的数据结构,能针对给定问题,选择相适应的数据结构,并能设计和分析算法并能设计和分析算法1.2 的主要内容的主要内容99080-3 班号班号 3202670 计算机学院办公室电话号码计算机学院办公室电话号码610054 电子科技大学邮编电子科技大学邮编 例例1:结论结论1.杂乱的数据不能表达和交流信息杂乱的数据不能表达和交流信息1.2 的主要内容的主要内容例例例例2:2:电话号码簿电话号码簿电话号码簿电话号码簿(a a1
5、1,b b1 1)(a)(a2 2,b b2 2)(a)(an n,b bn n)其中:其中:其中:其中:a ai i为某人姓名,为某人姓名,为某人姓名,为某人姓名,b bi i为该人的电话号码。为该人的电话号码。为该人的电话号码。为该人的电话号码。要求:设计一个算法,给定一个姓名时,要求:设计一个算法,给定一个姓名时,要求:设计一个算法,给定一个姓名时,要求:设计一个算法,给定一个姓名时,能查出此人的电话号码。能查出此人的电话号码。能查出此人的电话号码。能查出此人的电话号码。如果姓名和电话号码的排列次序无规律,如果姓名和电话号码的排列次序无规律,则只能逐一比较姓名进行查找则只能逐一比较姓名进
6、行查找 如果姓名按字典顺序组织,则查找就快捷多了如果姓名按字典顺序组织,则查找就快捷多了结论结论2.数据之间是有联系的数据之间是有联系的这些联系常常影响算法的选择和效率。这些联系常常影响算法的选择和效率。DS就是要研究数据之间的联系。就是要研究数据之间的联系。1.2 的主要内容的主要内容例3:大学学生管理机构学校学校学校学校一系八系一系八系一系八系一系八系一年级二年级三年级四年级一年级二年级三年级四年级一年级二年级三年级四年级一年级二年级三年级四年级班班班班班班班班张三李四张三李四张三李四张三李四结论结论数据之间是有结构的数据之间是有结构的例中数据之间呈分层结构(树状结构)例中数据之间呈分层结
7、构(树状结构)DS就是要研究就是要研究数据之间的各类结构数据之间的各类结构。1.2 的主要内容的主要内容例:图书目录管理例:图书目录管理设每个书目含:书名,作者,登录号,分类,出版年月设每个书目含:书名,作者,登录号,分类,出版年月设每个书目含:书名,作者,登录号,分类,出版年月设每个书目含:书名,作者,登录号,分类,出版年月对图书目录常有如下操作:对图书目录常有如下操作:对图书目录常有如下操作:对图书目录常有如下操作:查找:某书在书库中是否存在?查找:某书在书库中是否存在?查找:某书在书库中是否存在?查找:某书在书库中是否存在?插入:购进新书时的登录;插入:购进新书时的登录;插入:购进新书时
8、的登录;插入:购进新书时的登录;删除:报废或丢失的书,需从目录中去掉;删除:报废或丢失的书,需从目录中去掉;删除:报废或丢失的书,需从目录中去掉;删除:报废或丢失的书,需从目录中去掉;结论结论在某种数据结构上可定义一组运算在某种数据结构上可定义一组运算DS就是要研究各类数据结构上的各种运算。就是要研究各类数据结构上的各种运算。1.2 的主要内容综上所述:综上所述:DS主要研究内容:主要研究内容:数据的各种逻辑结构和物理结构,以及它们数据的各种逻辑结构和物理结构,以及它们之间的相应关系;之间的相应关系;对每种结构定义相适应的各种运算;对每种结构定义相适应的各种运算;设计出相应的算法;设计出相应的
9、算法;分析算法的效率。分析算法的效率。常见的数据结构有:数组、栈、队列、表、常见的数据结构有:数组、栈、队列、表、串、树、图和文件等。串、树、图和文件等。数据结构与问题求解1.在计算机中建立一个与实际问题有比较密在计算机中建立一个与实际问题有比较密切对应关系的切对应关系的模型模型;2.计算机内部的计算机内部的数据数据 表示了需要被处理的表示了需要被处理的实际对象,包括其内在的性质和关系;实际对象,包括其内在的性质和关系;3.处理这些数据的处理这些数据的程序程序 则模拟对象领域中则模拟对象领域中的实际过程;的实际过程;4.将计算机程序的运行将计算机程序的运行结果结果 在实际领域中在实际领域中给予
10、解释,便得到实际问题的解。给予解释,便得到实际问题的解。例1、当你到图书馆借阅书籍时,你要通过计算机检索书目信息。在书目自动检索系统中,有一张按登录号顺序排列的书目文件和三张分别按书名、作者名和分类号顺序排列的索引表。计算机检索就是按某个特定要求(如给定书名)对书目文件查询。(书目文件)(书名索引)(作者索引)(分类索引)例2、酒店管理系统中的客房分配问题。酒店要求每间客房出租率相等,以保证维持一个平均磨损率。对这一问题可用数据结构中的队列来解决;将酒店所有空闲客房排成一个队列,有客人入住则从队头分配客房,客人结帐离店则将空出的客房插入队尾。这样就能保证客房出租率相等。队头队尾出租队头客房客人
11、离店,空出客房插入队尾注:例1、例2都属于线性数据结构例3、计算机和人对弈问题。计算机和人对弈是因为事先已将对奕的策略输入计算机中。对弈的过程是在一定规则下随机进行,计算机操作对象是对弈过程中可能出现的棋盘状态-称为格局。下面看一下井字棋对弈。目前我们所接触的象棋软件、围棋软件的实现原理和井字棋是一样的。此类数据结构为树型结构例4、一个城市的居民点铺设煤气管道,居民点之间的铺设费用可以估算,要求工程完工后,每个居民点都能通气,并且总的费用最少。我们用图来表示这类问题。其中图的顶点表示居民点,边上的权值表示铺设费用。81429675317.564.582.545.634.544.271.564.
12、528.555.230.475.0(A、费用核算)142935678(B、铺设方案)问题求解例子问题求解例子-五叉路口交通管理系统设计五叉路口交通管理系统设计五叉路口交通管理系统设计五叉路口交通管理系统设计BACDE对车辆可能行驶方向进行分组,要求任一组中各个方向行驶的对车辆可能行驶方向进行分组,要求任一组中各个方向行驶的车辆可以同时安全行驶。分组越少,可同时行驶的车辆越多,车辆可以同时安全行驶。分组越少,可同时行驶的车辆越多,管理系统的质量就越高。管理系统的质量就越高。有有13个可能通行的方向:个可能通行的方向:AB,AC,AD,BA,BC,BD,DA,DB,DC,EA,EB,EC,ED。交
13、叉路口图式模型交叉路口图式模型将一种通行方向用一个结点表示将一种通行方向用一个结点表示将一种通行方向用一个结点表示将一种通行方向用一个结点表示(椭圆椭圆椭圆椭圆);在不能同时行驶的结点间画一条连线;在不能同时行驶的结点间画一条连线;在不能同时行驶的结点间画一条连线;在不能同时行驶的结点间画一条连线;ABACADBCBDBADBDCDAEBECEAED问题求解:将图中结点进行分组,使有线连接的结点不在同一个组问题求解:将图中结点进行分组,使有线连接的结点不在同一个组里。要解决的问题已借助图的里。要解决的问题已借助图的模型模型模型模型 清楚而严格地表达出来。余下的清楚而严格地表达出来。余下的问题是
14、能否设计一个总能得到最佳的分组方案的问题是能否设计一个总能得到最佳的分组方案的程序程序程序程序。求解方法(求着色问题的近似解)求解方法(求着色问题的近似解)1.1.选出未着色的结点,并用该新颜色上色;选出未着色的结点,并用该新颜色上色;选出未着色的结点,并用该新颜色上色;选出未着色的结点,并用该新颜色上色;2.2.寻找仍未着色的结点,如果某结点与新颜色结点寻找仍未着色的结点,如果某结点与新颜色结点寻找仍未着色的结点,如果某结点与新颜色结点寻找仍未着色的结点,如果某结点与新颜色结点没有边相连,则将该结点用该颜色上色。没有边相连,则将该结点用该颜色上色。没有边相连,则将该结点用该颜色上色。没有边相
15、连,则将该结点用该颜色上色。ABACADBCBDBADBDCDAEBECEAED结果:结果:1.AB AC AD BA DC ED2.BC BD EA 3.DA DB4.EB EC问题:设有问题:设有n个正常人和个正常人和n个精神病患者要过一条河,个精神病患者要过一条河,现有一条能容纳现有一条能容纳c(c2n)个人的小船,为防止患者个人的小船,为防止患者伤害正常人,要求无论在河的哪一边,正常人的人数伤害正常人,要求无论在河的哪一边,正常人的人数不得少于患者人数(除非正常人数为不得少于患者人数(除非正常人数为0)。又设每个)。又设每个人都会划船。试设计一个过河的最佳方案,即小船人都会划船。试设计
16、一个过河的最佳方案,即小船来回次数最少的算法。来回次数最少的算法。解:解:1、模型构造:、模型构造:用一个三元组(用一个三元组(x,y,t)表示渡河过程中的某个表示渡河过程中的某个状态。其中,状态。其中,x表示起始岸上正常人的人数,表示起始岸上正常人的人数,y表表示起始岸上患者人数,示起始岸上患者人数,t表示小船的位置,即:表示小船的位置,即:T=1 表示小船在起始岸边表示小船在起始岸边 0 表示小船在目的岸边表示小船在目的岸边2、再构造一个图,图中的每一个顶点表示一个合、再构造一个图,图中的每一个顶点表示一个合法状态。合法状态所对应的三元组(法状态。合法状态所对应的三元组(x,y,t)必须满
17、必须满足:足:x=0 或或 x=n 或或 x=y.于是,渡河方案的求解就转换成一个图的搜索问题于是,渡河方案的求解就转换成一个图的搜索问题找出从起始顶点(找出从起始顶点(n,n,1)到目的顶点到目的顶点(0,0,0)的一的一条包含边数最少的通路。若该通路不存在,表明该条包含边数最少的通路。若该通路不存在,表明该问题无解。问题无解。3、例如,当、例如,当n=2,c=2时,各合法状态及其间的变时,各合法状态及其间的变换如图:换如图:(2,2,1)(0,2,0)(2,0,0)(1,1,0)(2,1,0)(2,1,1)(0,1,0)(0,2,1)(1,1,1)(0,0,0)1.基本术语基本术语 数据数
18、据数据数据(Data)Data):所有能被所有能被所有能被所有能被计算机处理计算机处理计算机处理计算机处理的的的的符号符号符号符号的集合。的集合。的集合。的集合。数据元素数据元素数据元素数据元素(Data ElementData Element):):):):是数据这个集合中的是数据这个集合中的是数据这个集合中的是数据这个集合中的一个个体。一个个体。一个个体。一个个体。设给定数据集合为:设给定数据集合为:设给定数据集合为:设给定数据集合为:D=dD=d1 1,d d2 2,d dn n 则则则则d di i属于属于属于属于D D,并称并称并称并称d di i为为为为数据元素。数据元素。数据元素
19、。数据元素。数据项数据项数据项数据项(Data ItemData Item):):):):数据元素常常还可分为若干数据元素常常还可分为若干数据元素常常还可分为若干数据元素常常还可分为若干个数据项,数据项是数据具有意义的最小单位。个数据项,数据项是数据具有意义的最小单位。个数据项,数据项是数据具有意义的最小单位。个数据项,数据项是数据具有意义的最小单位。1.基本术语基本术语数据对象数据对象(Data Object):具有相同特性的具有相同特性的数据元素的集合。数据元素的集合。例如:数据集合例如:数据集合D=0,1,A,B,Z则:则:数据对象正整数数据对象正整数N 0,1,数据对象字母数据对象字母
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构二版 数据结构 PPT 课件
限制150内