数据结构深圳大学计算机与软件学院课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《数据结构深圳大学计算机与软件学院课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 深圳大学 计算机 软件 学院 课件
- 资源描述:
-
1、深圳大学计算机系 蔡茂国数据结构数据结构课程简介课程简介 本课程教材为:本课程教材为:n数据结构数据结构(C C语言版语言版)严蔚敏,吴伟民严蔚敏,吴伟民清华大学出版社清华大学出版社20042004年年1111月(第月(第2828次印刷)次印刷)2主要参考教材主要参考教材数据结构数据结构课程简介课程简介所有课件、作业及实验,均上传至:n深圳大学首页深圳大学首页 课程中心课程中心 输入学生姓名及密码,实现登录输入学生姓名及密码,实现登录 从数据结构从数据结构课程下下载课程下下载3课件下载课件下载第一章第一章深圳大学计算机系 蔡茂国一、数据一、数据5第一节数据结构第一节数据结构n是信息的载体,是信
2、息的载体,是描述客观事物的数、字符、以及所有能输入到计算机中,被计算机程序识别和处理的符号的集合符号的集合n数值性数据数值性数据n非数值性数据非数值性数据第章数据结构绪论第章数据结构绪论二、数据元素(二、数据元素(Data ElementData Element)6第一节数据结构第一节数据结构n数据的基本单位。数据的基本单位。在计算机程序中常作为一个整体进行考虑和处理。n有时一个数据元素可以由若干数据项由若干数据项(Data Data Item)Item)组成组成(此时数据元素被称为记录)n数据元素又称为元素、结点、记录数据元素又称为元素、结点、记录第章数据结构绪论第章数据结构绪论三、数据项(
3、三、数据项(Data ItemData Item)7第一节数据结构第一节数据结构n具有独立含义的最小标识单位。具有独立含义的最小标识单位。第章数据结构绪论第章数据结构绪论学号学号姓名姓名学院学院专业专业四、数据对象(四、数据对象(Data ObjectData Object)8第一节数据结构第一节数据结构n具有相同性质的数据元素的集合。具有相同性质的数据元素的集合。n整数数据对象整数数据对象 N=0,N=0,1,1,2,2,n字母字符数据对象字母字符数据对象 C=A,B,C,C=A,B,C,F F。第章数据结构绪论第章数据结构绪论五、结构(五、结构(StructureStructure)9第一
4、节数据结构第一节数据结构结构是元素之间的:n空间位置关系空间位置关系n相互作用和依赖关系相互作用和依赖关系第章数据结构绪论第章数据结构绪论五、结构五、结构10第一节数据结构第一节数据结构四种基本结构n集合结构集合结构n线性结构线性结构n树形结构树形结构n图图形结构结构第章数据结构绪论第章数据结构绪论456231125436123456123456六、数据结构(六、数据结构(Data StructureData Structure)11第一节数据结构第一节数据结构1.1.形式定义:形式定义:n某一数据对象的所有数据成员之间的关系。记为:某一数据对象的所有数据成员之间的关系。记为:Data_Str
5、uctureData_Structure=D,S=D,Sn其中,其中,D D 是某一数据对象,是某一数据对象,nS S 是该对象中所有数据成员之间的关系的有限集合。是该对象中所有数据成员之间的关系的有限集合。第章数据结构绪论第章数据结构绪论六、数据结构六、数据结构12第一节数据结构第一节数据结构2.2.线性数据结构举例线性数据结构举例 L=K,R L=K,RnK=1,2,3,4,5,6K=1,2,3,4,5,6nR=,R=,第章数据结构绪论第章数据结构绪论123456六、数据结构六、数据结构13第一节数据结构第一节数据结构3.3.树形数据结构举例树形数据结构举例 T=K,R T=K,RnK=1
6、,2,3,4,5,6K=1,2,3,4,5,6nR=,R=,第章数据结构绪论第章数据结构绪论456231六、数据结构六、数据结构14第一节数据结构第一节数据结构4.4.图图形数据结构举例数据结构举例 G=K,R G=K,RnK=1,2,3,4,5,6K=1,2,3,4,5,6nR=(1,2),(1,5),(1,6),(2,3),(2,4),R=(1,2),(1,5),(1,6),(2,3),(2,4),(2,6),(3,4),(4,5),(4,6),(5,6)(2,6),(3,4),(4,5),(4,6),(5,6)第章数据结构绪论第章数据结构绪论123456七、应用举例七、应用举例15第一节
7、数据结构第一节数据结构1.1.线性数据结构举例线性数据结构举例n数据结构学生选课名单(部分)数据结构学生选课名单(部分)第章数据结构绪论第章数据结构绪论学号学号姓名姓名 学院学院 专业专业 2004131221黄磊黄磊 信息工程学院信息工程学院 信息工程学院信息工程学院 2004131209熊玲玲熊玲玲 信息工程学院信息工程学院 信息工程学院信息工程学院 2004131135彭智俊彭智俊 信息工程学院信息工程学院 信息工程学院信息工程学院 2004131252徐元庆徐元庆 信息工程学院信息工程学院 信息工程学院信息工程学院 2004131099吴小池吴小池 信息工程学院信息工程学院 信息工程学
8、院信息工程学院 2004131031陈明亮陈明亮 信息工程学院信息工程学院 信息工程学院信息工程学院 七、应用举例七、应用举例16第一节数据结构第一节数据结构2.2.树形数据结构举例树形数据结构举例nUNIXUNIX文件系统结构图文件系统结构图(部分)(部分)第章数据结构绪论第章数据结构绪论/rootbinlibuseretcmathdsswhang xiongpan七、应用举例七、应用举例17第一节数据结构第一节数据结构3.3.图图形形数据结构举例数据结构举例n深圳城市交通示意图深圳城市交通示意图(部分)(部分)第章数据结构绪论第章数据结构绪论南山南山福田福田罗湖罗湖盐田盐田宝安宝安西丽西丽
9、梅林梅林布吉布吉龙华龙华龙岗龙岗八、数据结构要解决的问题八、数据结构要解决的问题18第一节数据结构第一节数据结构n如何为应用程序中涉及到各种各样的数据,建如何为应用程序中涉及到各种各样的数据,建立相应的数据结构(表、树或图),并依此实立相应的数据结构(表、树或图),并依此实现软件功能现软件功能n从广义上讲,数据结构描述现实世界实体的数从广义上讲,数据结构描述现实世界实体的数学模型及其上的操作在计算机中的表示和实现学模型及其上的操作在计算机中的表示和实现第章数据结构绪论第章数据结构绪论一、逻辑结构一、逻辑结构19第二节数据的结构第二节数据的结构n逻辑结构描述数据元素之间的关系逻辑结构描述数据元素
10、之间的关系n线性结构线性结构n线性表(表,栈,队列,串等)线性表(表,栈,队列,串等)n非线性结构非线性结构n树(二叉树,树(二叉树,HuffmanHuffman树,二叉排序树等)树,二叉排序树等)n图(有向图,无向图等)图(有向图,无向图等)第章数据结构绪论第章数据结构绪论456231123456123456二、物理结构(存储结构)二、物理结构(存储结构)20第二节数据的结构第二节数据的结构n物理结构是数据结构在计算机中的表示(或映物理结构是数据结构在计算机中的表示(或映象)象)n顺序存储表示顺序存储表示(可以用C语言中一维数组表示)n链接存储表示链接存储表示(可以用C语言中的指针表示)n索
11、引存储表示索引存储表示n散列存储表示散列存储表示第章数据结构绪论第章数据结构绪论二、物理结构(存储结构)二、物理结构(存储结构)21第二节数据的结构第二节数据的结构n复数存储结构举例复数存储结构举例第章数据结构绪论第章数据结构绪论z1=3.0-2.3i指针或链(地址)041506110613-2.33.00415z1=3.0-2.3i z2=-0.7+4.8i03000302063206343.0-2.3-0.74.8顺序存储结构链式存储结构一、数据类型一、数据类型22第三节数据类型第三节数据类型n数据类型是一个值的集合和定义在这个值集上数据类型是一个值的集合和定义在这个值集上的一组操作的总称
12、的一组操作的总称n如如C C语言中的整型变量语言中的整型变量(intint),其值集为某个区其值集为某个区间上的整数,定义在其上的操作为间上的整数,定义在其上的操作为+,-,+,-,x,/x,/等等第章数据结构绪论第章数据结构绪论二、原子数据类型和结构数据类型二、原子数据类型和结构数据类型23第三节数据类型第三节数据类型1.1.原子数据类型原子数据类型n是不可分解的数据类型是不可分解的数据类型n如如C C语言中的整型语言中的整型(intint),实型实型(float)float),字符字符型型(char)char),指针类型指针类型(*)和空类型和空类型(void)void)等等第章数据结构绪
13、论第章数据结构绪论二、原子数据类型和结构数据类型二、原子数据类型和结构数据类型24第三节数据类型第三节数据类型2.2.结构数据类型结构数据类型n由若干成分由若干成分(原子类型或结构类型)按某种结按某种结构组成的数据类型构组成的数据类型n结构数据类型可以看作是一种数据结构和定义结构数据类型可以看作是一种数据结构和定义在其上的一组操作组成的整体在其上的一组操作组成的整体n如数组,由若干分量组成,每个分量可以是整如数组,由若干分量组成,每个分量可以是整数,也可以是数组(如数,也可以是数组(如intint A10 A10)第章数据结构绪论第章数据结构绪论三、抽象数据类型(三、抽象数据类型(Abstra
14、ct Data TypeAbstract Data Type)25第三节数据类型第三节数据类型n由用户定义,用以表示应用问题的数据模型由用户定义,用以表示应用问题的数据模型n由基本的数据类型组成由基本的数据类型组成,并包括一组相关的服并包括一组相关的服务(或称操作)务(或称操作)n信息隐蔽和数据封装,使用与实现相分离信息隐蔽和数据封装,使用与实现相分离第章数据结构绪论第章数据结构绪论三、抽象数据类型(三、抽象数据类型(ADTADT)26第三节数据类型第三节数据类型n抽象数据类型(抽象数据类型(ADTADT)是一个数学模型以及定是一个数学模型以及定义在该模型上的一组操作义在该模型上的一组操作n抽
15、象数据类型抽象数据类型=数据结构数据结构+定义在此数据结定义在此数据结 构上的一组操作构上的一组操作第章数据结构绪论第章数据结构绪论三、抽象数据类型(三、抽象数据类型(ADTADT表示)表示)27第三节数据类型第三节数据类型n抽象数据类型可用(抽象数据类型可用(D D,S S,P P)三元组表示三元组表示nD D是数据对象是数据对象nS S是是D D上的关系集上的关系集nP P是对是对D D的基本操作集。的基本操作集。第章数据结构绪论第章数据结构绪论三、抽象数据类型(三、抽象数据类型(ADTADT定义)定义)28第三节数据类型第三节数据类型nADT ADT 抽象数据类型名抽象数据类型名 数据对
16、象:数据对象的定义数据对象:数据对象的定义 数据关系:数据关系的定义数据关系:数据关系的定义 基本操作:基本操作基本操作:基本操作(函数函数)的定义的定义 ADT ADT 抽象数据类型名抽象数据类型名第章数据结构绪论第章数据结构绪论三、抽象数据类型(三、抽象数据类型(ADTADT定义举例)定义举例)29第三节数据类型第三节数据类型nADT Triplet 数据对象:D=e1,e2,e3|e1,e2,e3ElemSet 数据关系:R=,基本操作:Max(T,&e)初始条件:三元组T已存在。操作结果:用e返回T的3个元素中的最大值。Min(T,&e)初始条件:三元组T已存在。操作结果:用e返回T的
17、3个元素中的最小值。ADT Triplet第章数据结构绪论第章数据结构绪论三、抽象数据类型(三、抽象数据类型(ADTADT定义实现)定义实现)30第三节数据类型第三节数据类型n抽象数据类型可以通过固有数据类型抽象数据类型可以通过固有数据类型(C C语言中语言中已实现的数据类型已实现的数据类型)来实现来实现n抽象数据类型抽象数据类型 类类 classclassn数据对象数据对象 数据成员数据成员n基本操作基本操作 成员函数成员函数(方法方法)第章数据结构绪论第章数据结构绪论一、算法(一、算法(AlgorithmAlgorithm)31第四节算法分析第四节算法分析n算法是对特定问题求解步骤的一种描
18、述算法是对特定问题求解步骤的一种描述n是一有限长的操作序列是一有限长的操作序列第章数据结构绪论第章数据结构绪论一、算法(特性)一、算法(特性)32第四节算法分析第四节算法分析n有穷性有穷性:算法在执行有穷步后能结束n确定性确定性:每步定义都是确切、无歧义n可行性可行性:每一条运算应足够基本(已验算正确)n输入输入:有0个或多个输入n输出输出:有一个或多个输出第章数据结构绪论第章数据结构绪论一、算法(举例)一、算法(举例)33第四节算法分析第四节算法分析例子:选择排序例子:选择排序问题:递增排序问题:递增排序解决方案:逐个选择最小数据解决方案:逐个选择最小数据算法框架:算法框架:for(int
19、i=0;i n-1;i+)/n-1趟趟从从ai检查到检查到an-1,找到最小数找到最小数;若最小整数在若最小整数在ak,交换交换ai与与ak;第章数据结构绪论第章数据结构绪论二、算法设计的要求二、算法设计的要求34第四节算法分析第四节算法分析n正确性正确性:满足具体问题的需求n可读性可读性:便于理解和修改n健壮性健壮性:当输入数据非法时,也能适当反应n效率高:效率高:执行时间时间少n空间空间省省:执行中需要的最大存储空间第章数据结构绪论第章数据结构绪论三、时间复杂度三、时间复杂度35第四节算法分析第四节算法分析n衡量算法的效率,主要依据算法执行所需要的衡量算法的效率,主要依据算法执行所需要的时
20、间,即时间复杂度时间,即时间复杂度n事后统计法事后统计法:计算算法开始时间与完成时间差值n事前统计法事前统计法:依据算法选用何种策略及问题的规模n,是常用的方法第章数据结构绪论第章数据结构绪论三、时间复杂度三、时间复杂度36第四节算法分析第四节算法分析n时间复杂度是问题规模时间复杂度是问题规模n n的函数的函数f(nf(n),即:即:T(nT(n)=)=O(f(nO(f(n)n一般地,时间复杂度用算法中最深层循环内的一般地,时间复杂度用算法中最深层循环内的语句中的原操作的重复执行次数表示语句中的原操作的重复执行次数表示第章数据结构绪论第章数据结构绪论三、时间复杂度三、时间复杂度37第四节算法分
21、析第四节算法分析a.y*=x;b.for(i=1;i=n;i+y*=x;c.for(j=1;j=n;j+for(i=1;i=n;i+y*=x;na,b,c三个算法中,三个算法中,“y*=x;”程序段的时间程序段的时间复杂度分别为复杂度分别为O(1),O(n),O(n2),分别称为常分别称为常量阶,线性阶,平方阶量阶,线性阶,平方阶第章数据结构绪论第章数据结构绪论三、时间复杂度三、时间复杂度38第四节算法分析第四节算法分析n时间复杂度除常量阶时间复杂度除常量阶O(1),线性阶线性阶O(n),平平方阶方阶O(n2)外,还有对数阶外,还有对数阶O(logn),排列排列阶阶O(n!),指数阶指数阶O(
22、2n)等,是相对于问题规等,是相对于问题规模模n的增长率的表示方法的增长率的表示方法n指数阶随问题规模增长过快,一般不宜使用指数阶随问题规模增长过快,一般不宜使用第章数据结构绪论第章数据结构绪论三、时间复杂度三、时间复杂度39第四节算法分析第四节算法分析n如果算法的执行有多种可能的操作顺序,则求如果算法的执行有多种可能的操作顺序,则求其平均时间复杂度其平均时间复杂度n如果无法求取平均时间复杂度,则采用最坏情如果无法求取平均时间复杂度,则采用最坏情况下的时间复杂度况下的时间复杂度n时间复杂度是衡量算法好坏的一个时间复杂度是衡量算法好坏的一个第章数据结构绪论第章数据结构绪论四、空间复杂度四、空间复
23、杂度40第四节算法分析第四节算法分析n空间复杂度指算法执行时,所需要存储空间的空间复杂度指算法执行时,所需要存储空间的量度,它也是问题规模的函数,即:量度,它也是问题规模的函数,即:S(n)=O(f(n)第章数据结构绪论第章数据结构绪论第二章第二章深圳大学计算机系 蔡茂国一、线性数据结构的特点一、线性数据结构的特点42第一节线性表第一节线性表n在数据元素的非空有限集中在数据元素的非空有限集中、存在惟一的一个被称作、存在惟一的一个被称作“第一个第一个”的数据元素的数据元素(如如“”)”)、存在惟一的一个被称作、存在惟一的一个被称作“最后一个最后一个”的数据元素的数据元素(如如“”)”)、除第一个
24、元素外,每个数据元素均只有一个前驱、除第一个元素外,每个数据元素均只有一个前驱、除最后一个元素外,每个数据元素均只有一个后继、除最后一个元素外,每个数据元素均只有一个后继(next)(next)(如如“1”“1”的的nextnext是是“2”,“2”“2”,“2”的的nextnext是是“3”)“3”)第章线性表第章线性表123456二、线性表二、线性表43第一节线性表第一节线性表n线性表是最简单的一类线性数据结构线性表是最简单的一类线性数据结构n线性表是由线性表是由n n个数据元素组成的有限序列,相个数据元素组成的有限序列,相邻数据元素之间存在着序偶关系,可以写为:邻数据元素之间存在着序偶关
25、系,可以写为:(a a1 1,a,a2 2,a ai-1i-1,a ai i,a,ai+1i+1,a an-1n-1,a,an n)其中,ai是表中元素,i表示元素ai的位置,n是表的长度第章线性表第章线性表二、线性表二、线性表44第一节线性表第一节线性表n线性表中的元素具有相同的特性,属于同一数线性表中的元素具有相同的特性,属于同一数据对象,如:据对象,如:1.261.26个字母的字母表个字母的字母表:(:(A,B,C,D,A,B,C,D,Z),Z)2.2.近期每天的平均温度近期每天的平均温度:(30:(30,28 28,29 29,)第章线性表第章线性表一、顺序表一、顺序表45第二节顺序表
展开阅读全文