图的定义和术语学习培训课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《图的定义和术语学习培训课件.ppt》由用户(林田)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 定义 术语 学习 培训 课件
- 资源描述:
-
1、数据结构数据结构-图图 数据结构数据结构-图图1.熟练掌握图的概念和术语,图的邻接矩阵与邻接表两种存储方法。2.熟练掌握图的遍历的概念,图的DFS与BFS方法与算法。3.掌握最小生成树的概念,构造最小生成树的方法,求图的最小生成树的算法。4.掌握最短路径的概念,图的单源点最短路径的求解方法。了解单源点最短路径的算法;5.掌握拓扑排序和关键路径的方法,了解拓扑排序和关键路径的算法。教学目标教学目标数据结构数据结构-图图6.1 6.1 图的定义和术语图的定义和术语6.2 6.2 图的存储表示图的存储表示6.3 6.3 图的遍历图的遍历6.4 6.4 最小生成树最小生成树6.5 6.5 两点之间的最
2、短路径问题两点之间的最短路径问题6.6 6.6 拓扑排序拓扑排序6.7 6.7 关键路径关键路径教学内容教学内容数据结构数据结构-图图问题回顾问题回顾数据结构数据结构-图图数据结构数据结构-图图图的定义图的定义:图图是由一个是由一个顶点集顶点集 V 和一个和一个边边集集 E 构成的数据结构。构成的数据结构。G=(V,E)其中:G表示一个图,V是图G中顶点的集合,E是图G中顶点之间边的集合。若顶点若顶点v和和w之间的边没有方向,则称这条边为之间的边没有方向,则称这条边为无向边无向边,表示为,表示为(v,w)。相应的图称为。相应的图称为无向图无向图。若从顶点若从顶点v到到w的边有方向,则称这条边为
3、的边有方向,则称这条边为有向边有向边(又称为弧又称为弧),表示为,表示为。相应的图称为。相应的图称为有向图有向图。6.1 图的定义和术语图的定义和术语数据结构数据结构-图图 AB E C D例如例如:G1=(V1,E1)是有向图有向图其中V1=A,B,C,D,EE1=,B CA D F E例如例如:G2=(V2,E2)为无向图V2=A,B,C,D,E,FE2=(A,B),(A,E),(B,E),(C,D),(D,F),(B,F),(C,F)数据结构数据结构-图图名词和术语名词和术语网、子图 完全图、稀疏图、稠密图邻接点、度、入度、出度路径、路径长度、简单路径、简单回路连通图、连通分量、强连通图
4、、强连通分量生成树、生成森林数据结构数据结构-图图ABECFAEFBBC设图G=(V,E)和图 G=(V,E),且 VV,EE,则称 G 为 G 的子图子图。1597211132 带权的图分别称作有向网有向网或无向网无向网。数据结构数据结构-图图假设图中有 n 个顶点,e 条边,则含有 e=n(n-1)/2 e=n(n-1)/2 条边的无向图称作完全图完全图;含有 e=n(n-1)e=n(n-1)条弧的有向图称作 有向完全图有向完全图;若边或弧的个数 e nloge nlogn n,则称作稀疏图稀疏图,否则称作稠密图稠密图。数据结构数据结构-图图 假若顶点v 和顶点w 之间存在一条边,则称顶点
5、v 和w 互为邻接点邻接点,ACDFE例如例如:TD(B)=3TD(A)=2 边(v,w)和顶点v 和w 相关联关联。和顶点v 关联的边的数目边的数目定义为顶点的度度。B对无向图来说对无向图来说,数据结构数据结构-图图顶点的出度出度:以顶点v为弧尾的弧的数目;ABECD对有向图来说对有向图来说,顶点的入度入度:以顶点v为弧头的弧的数目。顶点的度度(TD)=)=出度出度(OD)+)+入度入度(ID)例如例如:ID(B)=2OD(B)=1TD(B)=3数据结构数据结构-图图设图G=(V,E)中的一个顶点序列 u=vi,0,vi,1,vi,m=w中,(vi,j-1,vi,j)E,1jm,则称从顶点u
6、 到顶点w 之间存在一条路径路径。路径上边的数目称作路径长度路径长度。ABECD如如:长度为3的路径A,B,C,D简单路径简单路径:序列中顶点不重复出现的路径。简单回路简单回路:序列中第一个顶点和最后一个顶点相同的路径。数据结构数据结构-图图若(右)图G中任意两个顶点之间都有路径相通,则称此图为连通图连通图;若(左)无向图为非连通图,则图中各个极大极大连通子图称作此图的连通分量连通分量。BACDFEBACDFE对无向图对无向图数据结构数据结构-图图 若任意两个顶点之间都存在一条有向路径,则称此有向图为强连通图强连通图。ABECDABECD对有向图,对有向图,否则,其各个强连通子图称作它的强连通
7、分量强连通分量。数据结构数据结构-图图 假设一个连通图连通图有 n 个顶点和 e 条边,其中 n-1 条边和 n 个顶点构成一个极小极小连通子图(生成树生成树)。对非连通图,则称由各个连通分量的生成树的集合为此非连通图的生成森生成森林林。BACDFE数据结构数据结构-图图结构的建立结构的建立对顶点的操作对顶点的操作插入和删除弧插入和删除弧遍历遍历部分操作部分操作数据结构数据结构-图图CreatGraph(&G,V,E)/按定义(V,VR)构造图结构的建立结构的建立对顶点的操作对顶点的操作LocateVex(G,u);/若G中存在顶点u,则返回该顶点在图中“位置位置”InsertVex(&G,v
8、);/在图G中增添新顶点v。DeleteVex(&G,v);/删除G中顶点v及其相关的弧。数据结构数据结构-图图对弧的操作对弧的操作InsertArc(&G,v,w);/在G中增添弧,若G是无向的,则还增添对称弧。DeleteArc(&G,v,w);/在G中删除弧,若G是无向的,则还删除对称弧。遍历遍历DFSTraverse(G,v);/从顶点v开始深度优先深度优先遍历图G,并对访问每个顶点一次且仅一次。BFSTraverse(G,v);/从顶点v开始广广度优先度优先遍历图G,并对访问每个顶点一次且仅一次。数据结构数据结构-图图在线性结构中,数据元素之间仅具有线性关系;在线性结构中,数据元素之
9、间仅具有线性关系;在树结构中,结点之间具有层次关系;在树结构中,结点之间具有层次关系;在图结构中,任意两个顶点之间都可能有关系。在图结构中,任意两个顶点之间都可能有关系。FECBAD线性结构线性结构ABCDEF树结构树结构V1V2V3V4V5图结构图结构不同结构中逻辑关系的对比不同结构中逻辑关系的对比数据结构数据结构-图图在线性结构中,元素之间的关系为在线性结构中,元素之间的关系为前驱和后继前驱和后继;在树结构中,结点之间的关系为在树结构中,结点之间的关系为双亲和孩子双亲和孩子;在图结构中,顶点之间的关系为在图结构中,顶点之间的关系为邻接邻接。FECBAD线性结构线性结构ABCDEF树结构树结
10、构V1V2V3V4V5图结构图结构不同结构中逻辑关系的对比不同结构中逻辑关系的对比数据结构数据结构-图图名词和术语复习名词和术语复习网、子图 完全图、稀疏图、稠密图邻接点、度、入度、出度路径、路径长度、简单路径、简单回路连通图、连通分量、强连通图、强连通分量生成树、生成森林数据结构数据结构-图图6.2 图的存储表示图的存储表示一图的数组(邻接矩阵)存储表示二图的邻接(链)表存储表示数据结构数据结构-图图ABCDEFAij=0 (i,j)E1 (i,j)E一、一、图的数组(邻接矩阵)存储表示BACDFE定义定义:矩阵的元素为矩阵的元素为A B C D E F数据结构数据结构-图图无向图数组表示法
11、特点:无向图数组表示法特点:l无向图邻接矩阵是对称矩阵,同一条边表示了两次;l顶点v的度:等于二维数组对应行(或列)中1的个数;l判断两顶点v、u是否为邻接点:只需判二维数组对应分量是否为1;l在图中增加、删除边:只需对二维数组对应分量赋值1或清0;l占用存储空间只与它的顶点数有关,与边数无关;适用于边稠密的图;l对有向图的数组表示法可做类似的讨论数据结构数据结构-图图有向图有向图的邻接矩阵的邻接矩阵为非对称矩阵为非对称矩阵ABECDA B C D EA BCDE数据结构数据结构-图图struct ArcCell /弧的定义弧的定义 VRType adj;/VRType是顶点关系类型。/无权图
12、:0或1,有权图:权值 InfoType *info;/该弧相关信息(可选);enum GraphKindDG,DN,UDG,UDN;/有向图,有向网,无向图,无向网struct MGraph/图的定义图的定义 VertexType vexsMaxVN;/顶点信息 ArcCell arcsMaxVNMaxVN;/弧的信息 int vexnum,arcnum;/顶点数,弧数 enum GraphKind kind;/图的种类标志 ;数据结构数据结构-图图常见的简单描述如下:struct MGraph struct MGraph/图的定义图的定义intint matMaxVNMaxVN;/边、弧的
13、信息 intint vexnum;/顶点数 GraphKindGraphKind kind;/图的种类标志 ;数据结构数据结构-图图0 A 1 41 B 0 4 52 C 3 53 D 2 54 E 0 15 F 1 2 3BACDFE二、图的邻接二、图的邻接 (链链)表表存储表示存储表示数据结构数据结构-图图有向图的邻接表有向图的邻接表1 4230 120 1 2 3 4 A B C D EABECF注意,在有向图的邻接表中不易找到指向该顶点的弧。数据结构数据结构-图图ABECD有向图的有向图的逆逆邻接表邻接表A B C D E 303420 01234在有向图的邻接表中,对每个顶点,链接的
14、是指向该顶点的弧。数据结构数据结构-图图struct ArcNode int adjvex(data);/该弧所指向的顶点的位置 ArcNode *nextarc(next);/指向下一条弧 InfoType *info;/该弧相关信息(可选);adjvex info nextarc弧的结点结构弧的结点结构struct VNode VertexType data;/顶点信息 ArcNode *firstarc;/指向第一条依附该顶点的弧 ;data firstarc顶点的结点结构顶点的结点结构数据结构数据结构-图图struct ALGraph /Adjacent List VNode vert
15、icesMaxVN;int vexnum,arcnum;enum GraphKind kind;/图的种类标志;图的定义图的定义数据结构数据结构-图图无向图邻接表的特点无向图邻接表的特点l在邻接表中,同一条边对应两个结点;l顶点v的度:等于v 对应的链表的长度;l判定两顶点v,w是否邻接:要看v对应的链表中有无对应的结点w(相反判断也行);l增减边:要在两个单链表插入、删除结点;l占用存储空间与顶点数、边数均有关;适用于边稀疏的图数据结构数据结构-图图建立邻接表算法描述建立邻接表算法描述/初始化一个结点总数为num的图,k为图的类型,num 为结点总数void InitG(ALGraph G,
16、enum GraphKind k,int num)G.kind=k;G.vexnum=num;G.vertices=new VNodevexnum;for(int i=0;iG.verticesi.data;/输入结点信息/有向图(网)增加弧的算法,将弧(from,to,weight)加入图void InsertArc(ALGraph G,int from,int to,int weight)ArcNode*s=new ArcNode;s-weight=weight;s-adjvex=to;s-nextarc=G.verticesfrom.firstarc;/插到链表verticesfrom的
展开阅读全文