《数据结构C-版》期末复习教学课件2.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《数据结构C-版》期末复习教学课件2.ppt》由用户(ziliao2023)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构C-版 数据结构 期末 复习 教学 课件
- 资源描述:
-
1、数据结构(数据结构(C版)版)清华大学出版社清华大学出版社数据结构数据结构期末复习(2)数据结构(数据结构(C版)版)清华大学出版社清华大学出版社第六章第六章 图图本章的主要内容是:图的逻辑结构图的存储结构及实现图的连通性最小生成树最短路径AOV网与拓扑排序AOE网与关键路径 数据结构(数据结构(C版)版)清华大学出版社清华大学出版社图的定义6.1 图的逻辑结构图是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G=(V,E)其中:G表示一个图,V是图G中顶点的集合,E是图G中顶点之间边的集合。在线性表中,元素个数可以为零,称为空表;在树中,结点个数可以为零,称为空树;在图中,顶点个数
2、不能为零,但可以没有边。数据结构(数据结构(C版)版)清华大学出版社清华大学出版社6.1 图的逻辑结构如果图的任意两个顶点之间的边都是无向边,则称该图为无向图。若顶点vi和vj之间的边没有方向,则称这条边为无向边,表示为(vi,vj)。若从顶点vi到vj的边有方向,则称这条边为有向边,表示为。如果图的任意两个顶点之间的边都是有向边,则称该图为有向图。V1V2V3V4V5V1V2V3V4数据结构(数据结构(C版)版)清华大学出版社清华大学出版社6.1 图的逻辑结构图的基本术语 简单图:在图中,若不存在顶点到其自身的边,且同一条边不重复出现。V3V4V5V1V2V3V4V5V1V2非简单图 非简单
3、图 简单图V1V2V3V4V5v 数据结构中讨论的都是简单图。数据结构(数据结构(C版)版)清华大学出版社清华大学出版社6.1 图的逻辑结构图的基本术语 邻接、依附无向图中,对于任意两个顶点vi和顶点vj,若存在边(vi,vj),则称顶点vi和顶点vj互为邻接点,同时称边(vi,vj)依附于顶点vi和顶点vj。V1V2V3V4V5V1的邻接点:V2、V4V2的邻接点:V1、V3、V5数据结构(数据结构(C版)版)清华大学出版社清华大学出版社稀疏图:称边数很少的图为稀疏图;稠密图:称边数很多的图为稠密图。顶点的度:在无向图中,顶点v的度是指依附于该顶点的边数,通常记为TD(v)。6.1 图的逻辑
4、结构图的基本术语 顶点的入度:在有向图中,顶点v的入度是指以该顶点为弧头的弧的数目,记为ID(v);顶点的出度:在有向图中,顶点v的出度是指以该顶点为弧尾的弧的数目,记为OD(v)。数据结构(数据结构(C版)版)清华大学出版社清华大学出版社权:是指对边赋予的有意义的数值量。网:边上带权的图,也称网图。6.1 图的逻辑结构图的基本术语 V1V2V3V42785数据结构(数据结构(C版)版)清华大学出版社清华大学出版社路径:在无向图G=(V,E)中,从顶点vp到顶点vq之间的路径是一个顶点序列(vp=vi0,vi1,vi2,vim=vq),其中,(vij-1,vij)E(1jm)。若G是有向图,则
5、路径也是有方向的,顶点序列满足E。6.1 图的逻辑结构图的基本术语 V1V2V3V4V5v一般情况下,图中的路径不惟一。V1 到V4的路径:V1 V4 V1 V2 V3 V4 V1 V2 V5V3 V4数据结构(数据结构(C版)版)清华大学出版社清华大学出版社路径长度:路径长度:6.1 图的逻辑结构图的基本术语 非带权图路径上边的个数带权图路径上各边的权之和V1V2V3V4V5V1 V4:长度为1V1 V2 V3 V4:长度为3V1 V2 V5V3 V4:长度为4数据结构(数据结构(C版)版)清华大学出版社清华大学出版社路径长度:路径长度:6.1 图的逻辑结构图的基本术语 非带权图路径上边的个
6、数带权图路径上各边的权之和V1 V4:长度为8V1 V2 V3 V4:长度为7V1 V2 V5V3 V4:长度为15V1V2V3V4V5256328数据结构(数据结构(C版)版)清华大学出版社清华大学出版社连通图:在无向图中,如果从一个顶点vi到另一个顶点vj(ij)有路径,则称顶点vi和vj是连通的。如果图中任意两个顶点都是连通的,则称该图是连通图。连通分量:非连通图的极大连通子图称为连通分量。6.1 图的逻辑结构图的基本术语 如何求得一个非连通图的连通分量?1.含有极大顶点数;2.依附于这些顶点的所有边。数据结构(数据结构(C版)版)清华大学出版社清华大学出版社强连通图:在有向图中,对图中
7、任意一对顶点vi和vj(ij),若从顶点vi到顶点vj和从顶点vj到顶点vi均有路径,则称该有向图是强连通图。强连通分量:非强连通图的极大强连通子图。6.1 图的逻辑结构图的基本术语 如何求得一个非连通图的连通分量?数据结构(数据结构(C版)版)清华大学出版社清华大学出版社生成树:n个顶点的连通图G的生成树是包含G中全部顶点的一个极小连通子图。生成森林:在非连通图中,由每个连通分量都可以得到一棵生成树,这些连通分量的生成树就组成了一个非连通图的生成森林。如何理解极小连通子图?6.1 图的逻辑结构图的基本术语 多构成回路少不连通含有n-1条边数据结构(数据结构(C版)版)清华大学出版社清华大学出
8、版社V1V2V3V4V5V6V7V1V2V3V4V5V6V7V1V2V3V4V5V1V2V3V4V5生成树生成森林6.1 图的逻辑结构数据结构(数据结构(C版)版)清华大学出版社清华大学出版社图的遍历操作图的遍历是在从图中某一顶点出发,对图中所有顶点访问一次且仅访问一次。6.1 图的逻辑结构抽象操作,可以是对结点进行的各种处理,这里简化为输出结点的数据。数据结构(数据结构(C版)版)清华大学出版社清华大学出版社1.深度优先遍历 基本思想:访问顶点v;从v的未被访问的邻接点中选取一个顶点w,从w出发进行深度优先遍历;重复上述两步,直至图中所有和v有路径相通的顶点都被访问到。6.1 图的逻辑结构数
9、据结构(数据结构(C版)版)清华大学出版社清华大学出版社深一层递归递归返回深度优先遍历序列?入栈序列?出栈序列?6.1 图的逻辑结构V1V3V2V4V5V6V7V8 V1遍历序列:V1V2 V2V4 V4V5 V5数据结构(数据结构(C版)版)清华大学出版社清华大学出版社深一层递归递归返回深度优先遍历序列?入栈序列?出栈序列?6.1 图的逻辑结构V1V3V2V4V5V6V7V8 V1遍历序列:V1V2 V2V4 V4V5V8 V8数据结构(数据结构(C版)版)清华大学出版社清华大学出版社深一层递归递归返回深度优先遍历序列?入栈序列?出栈序列?6.1 图的逻辑结构V1V3V2V4V5V6V7V8
10、 V1遍历序列:V1V2 V2V4 V4V5V8数据结构(数据结构(C版)版)清华大学出版社清华大学出版社深一层递归递归返回深度优先遍历序列?入栈序列?出栈序列?6.1 图的逻辑结构V1V3V2V4V5V6V7V8 V1遍历序列:V1 V7V2V4V5V8V3 V3V6 V6V7数据结构(数据结构(C版)版)清华大学出版社清华大学出版社2.广度优先遍历 基本思想:访问顶点v;依次访问v的各个未被访问的邻接点v1,v2,vk;分别从v1,v2,vk出发依次访问它们未被访问的邻接点,并使“先被访问顶点的邻接点”先于“后被访问顶点的邻接点”被访问。直至图中所有与顶点v有路径相通的顶点都被访问到。6.
11、1 图的逻辑结构数据结构(数据结构(C版)版)清华大学出版社清华大学出版社广度优先遍历序列?入队序列?出队序列?6.1 图的逻辑结构V1V3V2V4V5V6V7V8遍历序列:V1V1数据结构(数据结构(C版)版)清华大学出版社清华大学出版社广度优先遍历序列?入队序列?出队序列?6.1 图的逻辑结构V1V3V2V4V5V6V7V8遍历序列:V1V2V2V3V3数据结构(数据结构(C版)版)清华大学出版社清华大学出版社广度优先遍历序列?入队序列?出队序列?6.1 图的逻辑结构V1V3V2V4V5V6V7V8遍历序列:V1V2V3V3V4V4V5V5数据结构(数据结构(C版)版)清华大学出版社清华大
12、学出版社广度优先遍历序列?入队序列?出队序列?6.1 图的逻辑结构V1V3V2V4V5V6V7V8遍历序列:V1V2V3V4V4V5V5V6V6V7V7数据结构(数据结构(C版)版)清华大学出版社清华大学出版社广度优先遍历序列?入队序列?出队序列?6.1 图的逻辑结构V1V3V2V4V5V6V7V8遍历序列:V1V2V3V4V5V5V6V6V7V7V8V8数据结构(数据结构(C版)版)清华大学出版社清华大学出版社邻接矩阵(数组表示法)基本思想:用一个一维数组存储图中顶点的信息,用一个二维数组(称为邻接矩阵)存储图中各顶点之间的邻接关系。6.2 图的存储结构及实现假设图G(V,E)有n个顶点,则
13、邻接矩阵是一个nn的方阵,定义为:arcij1 若(vi,vj)E(或E)0 其它数据结构(数据结构(C版)版)清华大学出版社清华大学出版社无向图的邻接矩阵的特点?无向图的邻接矩阵6.2 图的存储结构及实现V1V3V4V2V1 V2 V3 V4vertex=0 1 0 1 1 0 1 1 0 1 0 0 1 1 0 0 arc=V1 V2 V3 V4V1V2V3V4主对角线为 0 且一定是对称矩阵。数据结构(数据结构(C版)版)清华大学出版社清华大学出版社网图的邻接矩阵6.2 图的存储结构及实现网图的邻接矩阵可定义为:arcij wij 若(vi,vj)E(或E)0 若i=j 其他V1V2V3
14、V42785 0 2 5 0 0 8 7 0 arc=数据结构(数据结构(C版)版)清华大学出版社清华大学出版社邻接表邻接表存储的基本思想:对于图的每个顶点vi,将所有邻接于vi的顶点链成一个单链表,称为顶点vi的边表(对于有向图则称为出边表),所有边表的头指针和存储顶点信息的一维数组构成了顶点表。6.2 图的存储结构及实现图的邻接矩阵存储结构的空间复杂度?如果为稀疏图则会出现什么现象?假设图G有n个顶点e条边,则存储该图需要O(n2)。数据结构(数据结构(C版)版)清华大学出版社清华大学出版社邻接表有两种结点结构:顶点表结点和边表结点。vertexfirstedge adjvex next
15、顶点表 边 表 vertex:数据域,存放顶点信息。firstedge:指针域,指向边表中第一个结点。adjvex:邻接点域,边的终点在顶点表中的下标。next:指针域,指向边表中的下一个结点。6.2 图的存储结构及实现数据结构(数据结构(C版)版)清华大学出版社清华大学出版社10323101 V1 V2 V3 V40123vertex firstedge6.2 图的存储结构及实现V1V3V4V2无向图的邻接表边表中的结点表示什么?每个结点对应图中的一条边,邻接表的空间复杂度为O(n+e)。数据结构(数据结构(C版)版)清华大学出版社清华大学出版社10323101 V1 V2 V3 V4012
16、3vertex firstedge6.2 图的存储结构及实现V1V3V4V2无向图的邻接表如何求顶点 i 的度?顶点i的边表中结点的个数。数据结构(数据结构(C版)版)清华大学出版社清华大学出版社如何判断顶点 i 和顶点 j之间是否存在边?测试顶点 i 的边表中是否存在终点为 j 的结点。6.2 图的存储结构及实现10323101 V1 V2 V3 V40123vertex firstedgeV1V3V4V2无向图的邻接表数据结构(数据结构(C版)版)清华大学出版社清华大学出版社6.2 图的存储结构及实现有向图的邻接表V1V2V3V41230 V1 V2 V3 V40123vertex fir
17、stedge如何求顶点 i 的出度?顶点 i 的出边表中结点的个数。数据结构(数据结构(C版)版)清华大学出版社清华大学出版社6.2 图的存储结构及实现有向图的邻接表V1V2V3V41220 V1 V2 V3 V40123vertex firstedge如何求顶点 i 的入度?各顶点的出边表中以顶点 i 为终点的结点个数。数据结构(数据结构(C版)版)清华大学出版社清华大学出版社6.2 图的存储结构及实现有向图的邻接表V1V2V3V41230 V1 V2 V3 V40123vertex firstedge如何求顶点 i 的所有邻接点?遍历顶点 i 的边表,该边表中的所有终点都是顶点 i 的邻接
18、点。数据结构(数据结构(C版)版)清华大学出版社清华大学出版社6.2 图的存储结构及实现网图的邻接表V1V2V3V427852 1 V1 V2 V3 V40123vertex firstedge5 28 37 0数据结构(数据结构(C版)版)清华大学出版社清华大学出版社十字链表 邻接表6.2 图的存储结构及实现逆邻接表将邻接表与逆邻接表合二为一?为什么要合并?V1V2V3V412 3 0v1v2v3v401231 3 0 2 v1v2v3v4012303 数据结构(数据结构(C版)版)清华大学出版社清华大学出版社十字链表的结点结构vertexfirstinfirstout顶点表结点tailve
19、x headvex headlink taillink边表结点tailvex:弧的起点在顶点表中的下标;headvex:弧的终点在顶点表中的下标;headlink:入边表指针域;taillink:出边表指针域。6.2 图的存储结构及实现vertex:数据域,存放顶点信息;firstin:入边表头指针;firstout:出边表头指针;数据结构(数据结构(C版)版)清华大学出版社清华大学出版社3 03 1 3210V1V2V3V42 3 0 10 2 6.2 图的存储结构及实现十字链表存储有向图 V1V2V3V4v3v4v4v1v1v2v1v3v4v2数据结构(数据结构(C版)版)清华大学出版社清
20、华大学出版社生成树的代价:设G=(V,E)是一个无向连通网,生成树上各边的权值之和称为该生成树的代价。最小生成树:在图G所有生成树中,代价最小的生成树称为最小生成树。应用举例最小生成树最小生成树最小生成树的概念可以应用到许多实际问题中。例:在n个城市之间建造通信网络,至少要架设n-1条通信线路,而每两个城市之间架设通信线路的造价是不一样的,那么如何设计才能使得总造价最小?数据结构(数据结构(C版)版)清华大学出版社清华大学出版社基本思想:设G=(V,E)是具有n个顶点的连通网,T=(U,TE)是G的最小生成树,T的初始状态为U=u0(u0V),TE=,重复执行下述操作:在所有uU,vV-U的边
21、中找一条代价最小的边(u,v)并入集合TE,同时v并入U,直至U=V。关键:是如何找到连接U和V-U的最短边。普里姆(Prim)算法 应用举例最小生成树利用MST性质,可以用下述方法构造候选最短边集:对应V-U中的每个顶点,保留从该顶点到U中的各顶点的最短边。数据结构(数据结构(C版)版)清华大学出版社清华大学出版社U=A V-U=B,C,D,E,Fcost=(A,B)34,(A,C)46,(A,D),(A,E),(A,F)19 251234192646381725应用举例最小生成树ABEDCFPrim算法 数据结构(数据结构(C版)版)清华大学出版社清华大学出版社Prim算法 应用举例最小生
22、成树251234192646381725ABEDCFU=A,F V-U=B,C,D,Ecost=(A,B)34,(F,C)25,(F,D)25,(F,E)26 数据结构(数据结构(C版)版)清华大学出版社清华大学出版社Prim算法 应用举例最小生成树251234192646381725ABEDCFU=A,F,C V-U=B,D,Ecost=(A,B)34,(C,D)17,(F,E)26 数据结构(数据结构(C版)版)清华大学出版社清华大学出版社Prim算法 应用举例最小生成树251234192646381725ABEDCFU=A,F,C,D V-U=B,Ecost=(A,B)34,(F,E)2
23、6 数据结构(数据结构(C版)版)清华大学出版社清华大学出版社Prim算法 应用举例最小生成树251234192646381725ABEDCFU=A,F,C,D,E V-U=Bcost=(E,B)12 数据结构(数据结构(C版)版)清华大学出版社清华大学出版社Prim算法 应用举例最小生成树251234192646381725ABEDCFU=A,F,C,D,E,B V-U=数据结构(数据结构(C版)版)清华大学出版社清华大学出版社克鲁斯卡尔(Kruskal)算法 基本思想:设无向连通网为G(V,E),令G的最小生成树为T(U,TE),其初态为UV,TE,然后,按照边的权值由小到大的顺序,考察G
24、的边集E中的各条边。若被考察的边的两个顶点属于T的两个不同的连通分量,则将此边作为最小生成树的边加入到T中,同时把两个连通分量连接为一个连通分量;若被考察边的两个顶点属于同一个连通分量,则舍去此边,以免造成回路,如此下去,当T中的连通分量个数为1时,此连通分量便为G的一棵最小生成树。应用举例最小生成树数据结构(数据结构(C版)版)清华大学出版社清华大学出版社251234192646381725ABEDCF应用举例最小生成树ABEDCF连通分量A,B,C,D,E,F数据结构(数据结构(C版)版)清华大学出版社清华大学出版社251234192646381725ABEDCF应用举例最小生成树ABED
25、CF连通分量A,B,C,D,E,F12连通分量A,B,E,C,D,F数据结构(数据结构(C版)版)清华大学出版社清华大学出版社251234192646381725ABEDCF应用举例最小生成树ABEDCF连通分量A,B,E,C,D,F12连通分量A,F,B,C,D,E17数据结构(数据结构(C版)版)清华大学出版社清华大学出版社251234192646381725ABEDCF应用举例最小生成树ABEDCF连通分量A,B,E,C,D,F12连通分量A,F,B,E,C,D1917数据结构(数据结构(C版)版)清华大学出版社清华大学出版社251234192646381725ABEDCF应用举例最小生
展开阅读全文