图的定义和术语及存储结构幻灯片.ppt
《图的定义和术语及存储结构幻灯片.ppt》由会员分享,可在线阅读,更多相关《图的定义和术语及存储结构幻灯片.ppt(35页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、图的定义和术语及存储结构第1页,共35页,编辑于2022年,星期五17.1 7.1 基本术语基本术语7.2 7.2 存储结构存储结构7.3 7.3 图的遍历图的遍历7.4 7.4 图的连通性图的连通性7.5 7.5 图的应用图的应用第第7 7章章 图图第2页,共35页,编辑于2022年,星期五27.1 7.1 图的基本术语图的基本术语其中:其中:V V 是是G G 的顶点集合,是有穷非空集;的顶点集合,是有穷非空集;VRVR|v,wV|v,wV 且且 P(v,w),P(v,w),是有穷集是有穷集.问:问:当当VR VR 为空时,图为空时,图G G存在否?存在否?V=vertex 图:图:记为记
2、为 Graph(V,VR)E EA AC CB BD D表示从表示从 v v 到到 w w 的一条弧,并的一条弧,并称称 w w 为为弧头弧头,v v 为为弧尾弧尾。P(v,w)P(v,w)定义了弧定义了弧 的意义或信息。的意义或信息。答:还存在!但此时图答:还存在!但此时图G G只有顶点。只有顶点。第3页,共35页,编辑于2022年,星期五3E EA AC CB BD D例如例如:G=(V,VR)G=(V,VR)其中其中V=A,B,C,D,EV=A,B,C,D,EVR=,VR=,无向图:无向图:由顶点集和边集构成的图由顶点集和边集构成的图(“(“边边”无方向)无方向)若若 VR VR 必有必
3、有 VR,VR,则称则称 (v,w)(v,w)为顶点为顶点 v v 和顶点和顶点 w w 之间存在一条边。之间存在一条边。有向图:有向图:由顶点集和弧集构成的图由顶点集和弧集构成的图(“弧弧”是有方向的)是有方向的)第4页,共35页,编辑于2022年,星期五4BCAFED例如例如:G=(V,VR)G=(V,VR)其中:其中:V=A,B,C,D,E,FV=A,B,C,D,E,FVR=(A,B),(A,E),VR=(A,B),(A,E),(B,E),(B,E),(C,D),(D,F),(B,F),(C,F)(C,D),(D,F),(B,F),(C,F)v若若 n n 个顶点的无向图有个顶点的无向图
4、有 n n(n n-1)/2-1)/2 条边条边,称为称为无向完全图无向完全图v若若 n n 个顶点的有向图有个顶点的有向图有n n(n-n-1)1)条边条边,称为称为有向完全图有向完全图证明:证明:有向完全图有有向完全图有n n n n(n n n n-1)-1)-1)-1)条边条边条边条边。证明:证明:若是有向完全图,则若是有向完全图,则n个顶点中的每个顶点中的每个顶点都有一条弧指向其它个顶点都有一条弧指向其它n-1个顶点个顶点,因因此总边数此总边数=n(n-1)1234第5页,共35页,编辑于2022年,星期五5证明:证明:从从可以直接推论出无向完全图的边可以直接推论出无向完全图的边数数
5、因为无方向,两弧合并为一边,所以边因为无方向,两弧合并为一边,所以边数减半,总边数为数减半,总边数为n(n-1)/2。无向完全图有无向完全图有n n n n(n n-1)/2-1)/2 条边条边条边条边。1234例:判断下列例:判断下列4种图形各属什么类型?种图形各属什么类型?第6页,共35页,编辑于2022年,星期五6稀疏图:稀疏图:稠密图:稠密图:设有两个图设有两个图 G(V,E)和和 G(V,E)。若。若 V V 且且 E E,则称则称 图图G 是是 图图G 的子图。的子图。子子 图:图:边较少的图。通常边数远少于边较少的图。通常边数远少于nlognnlogn边很多的图。边很多的图。无向
6、图中,边数接近无向图中,边数接近n n(n n-1)/2-1)/2 有向图中,边数接近有向图中,边数接近n n(n n-1)-1)BBCABECFABECF例如:例如:第7页,共35页,编辑于2022年,星期五7ABECF1597211132有向网有向网或或无向网无向网是弧或边带权的图是弧或边带权的图。邻接点:邻接点:若边若边(v,w)VR,则,则顶点顶点v v 和顶点和顶点w w 互为邻接点。互为邻接点。边边(v,w)(v,w)依附依附于顶点于顶点v v 和和w w,或者与顶,或者与顶点点v,wv,w相关联相关联 。顶点顶点v v的度:的度:是和是和v v 相关联的边的数目相关联的边的数目,
7、记为记为TD(v)TD(v).顶点顶点v v的出度的出度:以顶点以顶点v v 为尾的弧的数目为尾的弧的数目;记为记为OD(v)OD(v).顶点顶点v v的入度的入度:以顶点以顶点v v 为头的弧的数目为头的弧的数目,记为记为ID(v)ID(v).顶点的度顶点的度(TD)=(TD)=出度出度(OD)+(OD)+入度入度(ID)(ID)问:当有向图中仅问:当有向图中仅1 1个顶点的入度个顶点的入度为为0,0,其余顶点的入度均为其余顶点的入度均为1 1,此时是何形状?,此时是何形状?答:是树!而答:是树!而且是一棵有向且是一棵有向树!树!第8页,共35页,编辑于2022年,星期五8路径路径:设图设图
8、G=(V,VR)G=(V,VR)中的一个顶点序列中的一个顶点序列:v=vv=vi,0 i,0,v,vi,1 i,1,v,vi,mi,m=w=w 中,中,(v(vi,j-1 i,j-1,v,vi,ji,j)(或(或 v vi,j-i,j-1 1,v,vi,ji,j)VRVR 1jm,1jm,则称从顶点则称从顶点v v 到顶点到顶点w w 之间存之间存在一条路径。在一条路径。路径长度:路径长度:路径上边路径上边(或弧)(或弧)的数目。的数目。ABECF如如:从从A A到到F F长度为长度为 3 3 的路径的路径A,B,C,FA,B,C,F或或AA,E E,C C,FF简单路径简单路径:指序列中顶点
9、不重复出现的路径。指序列中顶点不重复出现的路径。简单回路简单回路:指序列中第一个顶点和最后一个顶点相同,其余指序列中第一个顶点和最后一个顶点相同,其余顶点不重复出现的回路。顶点不重复出现的回路。第9页,共35页,编辑于2022年,星期五9连通图:连通图:无向无向图图G G中任意两中任意两个顶点之间都有路径相连通。个顶点之间都有路径相连通。连通分量:连通分量:非连通图中的非连通图中的极大连通子图。极大连通子图。BACDFEBACDFE强连通图:强连通图:在有向图中在有向图中,每一对顶点每一对顶点v vi i和和v vj j,都存在都存在一条从一条从v vi i到到v vj j和从和从v vj j
10、到到v vi i的的路径路径强连通分量:强连通分量:非强连通图非强连通图中的极大强连通子图。中的极大强连通子图。ABECFABECF第10页,共35页,编辑于2022年,星期五10生成树:生成树:v1v2v3v4生成森林:生成森林:假设一个连通图有假设一个连通图有 n n 个顶点和个顶点和 e e 条边,其中条边,其中 n-1 n-1 条边和条边和 n n 个顶点构个顶点构成一个极小连通子图,称该极小连通成一个极小连通子图,称该极小连通子图为此连通图的生成树。子图为此连通图的生成树。由若干棵由若干棵生成树生成树组成,含全部顶点,但构成这些树组成,含全部顶点,但构成这些树的边是最少的。(对有向或
11、无向图均适用)的边是最少的。(对有向或无向图均适用)第11页,共35页,编辑于2022年,星期五11CreatGraph(&G,V,VR)/按定义按定义(V,VR)(V,VR)构造图构造图DestroyGraph(&G)/销毁图销毁图结构的建立和销毁结构的建立和销毁对顶点的访问操作对顶点的访问操作LocateVex(G,u)/若若G G中存在顶点中存在顶点u u,则返回该顶点在图,则返回该顶点在图中中“位置位置”,否则返回其它信息。,否则返回其它信息。GetVex(G,v)/返回返回 v v 的值。的值。PutVex(&G,v,value)/对对 v v 赋值赋值valuevalue。结构的建
12、立和销毁结构的建立和销毁插入或删除顶点插入或删除顶点对邻接点的操作对邻接点的操作遍历遍历插入或删除弧插入或删除弧基本操作基本操作对顶点的访问操作对顶点的访问操作第12页,共35页,编辑于2022年,星期五12对邻接点的操作对邻接点的操作FirstAdjVex(G,v);/返回返回v v的的“第一个邻接点第一个邻接点”若该顶点在若该顶点在G G中没有邻接点,则返回中没有邻接点,则返回“空空”。NextAdjVex(G,v,w);/返回返回v v的(相对于的(相对于w w的)的)“下一个下一个邻接点邻接点”。若。若w w是是v v的最后一个邻接点,则返回的最后一个邻接点,则返回“空空”。插入或删除
13、顶点插入或删除顶点InsertVex(&G,v);/在图在图G G中增添新顶点中增添新顶点v v。DeleteVex(&G,v);/删除删除G G中顶点中顶点v v及其相关的弧。及其相关的弧。第13页,共35页,编辑于2022年,星期五13插入和删除弧插入和删除弧InsertArc(&G,v,w);/在在G G中增添弧中增添弧,若,若G G是无向的,是无向的,则还增添对称弧则还增添对称弧。DeleteArc(&G,v,w);/在在G G中删除弧中删除弧,若,若G G是无向是无向的,则还删除对称弧的,则还删除对称弧。DFSTraverse(G,v,Visit();/从顶点从顶点v v起深度优先遍
14、历图起深度优先遍历图G G,并对每个顶点调用函数,并对每个顶点调用函数VisitVisit一次且仅一次。一次且仅一次。BFSTraverse(G,v,Visit();/从顶点从顶点v起广度优先遍历图起广度优先遍历图G,并,并对每个顶点调用函数对每个顶点调用函数Visit一次且仅一次。一次且仅一次。遍遍 历历第14页,共35页,编辑于2022年,星期五147.2 7.2 图的存储结构图的存储结构图的特点:图的特点:链式存储结构:链式存储结构:顺序存储结构:顺序存储结构:难!难!(多个顶点,无序可言,无法仅以(多个顶点,无序可言,无法仅以顶点坐标表达相互关系)顶点坐标表达相互关系)可用可用多重链表
15、多重链表1.1.邻接矩阵邻接矩阵(数组数组)表示法表示法2.2.邻接表邻接表(链式链式)表示法表示法3.十字链表十字链表表示法表示法4.邻接多重表邻接多重表表示法表示法但可但可用用数组数组描述元素间关系。描述元素间关系。非线性结构非线性结构(m:nm:n)邻接矩阵邻接矩阵邻接表邻接表十字链表十字链表邻接多重表邻接多重表各种表示法成立的原各种表示法成立的原则:存入电脑后能唯则:存入电脑后能唯一复原一复原第15页,共35页,编辑于2022年,星期五15 建立一个建立一个顶点表顶点表和一个和一个邻接矩阵邻接矩阵。1.1.1.1.邻接矩阵(数组)表示法邻接矩阵(数组)表示法邻接矩阵(数组)表示法邻接矩
16、阵(数组)表示法记录各个顶点信息记录各个顶点信息表示各个顶点之间关系表示各个顶点之间关系 设图设图 A=(A=(V V,E E)有有 n n 个顶点,则图的邻接矩阵个顶点,则图的邻接矩阵是一个二维数组是一个二维数组 A A.arcs.arcs n nn n,定义为:,定义为:第16页,共35页,编辑于2022年,星期五16分析分析分析分析1 1 1 1:无向图的邻接矩阵是对称的;无向图的邻接矩阵是对称的;无向图的邻接矩阵是对称的;无向图的邻接矩阵是对称的;分析分析分析分析2 2 2 2:顶点顶点i i i i 的度的度的度的度第第 i i i i 行行行行(列列列列)中中中中1 1 的个数的个
17、数;特别:完全图的邻接矩阵中,对角元素为特别:完全图的邻接矩阵中,对角元素为特别:完全图的邻接矩阵中,对角元素为特别:完全图的邻接矩阵中,对角元素为0 0 0 0,其余全,其余全,其余全,其余全1 1 1 1。例例例例1 1:邻接矩阵:邻接矩阵:A.arcs=(v1 v2 v3 v4 v5 )v1v2v3v4v50 1 0 1 01 0 1 0 10 1 0 1 11 0 1 0 10 1 1 1 0顶点表:顶点表:无向图的邻接矩阵如何表示?无向图的邻接矩阵如何表示?v1v2v3v5v4v4A第17页,共35页,编辑于2022年,星期五17例例2 2:有向图的邻接矩阵如何表示?:有向图的邻接矩
18、阵如何表示?分析分析分析分析1 1 1 1:有向图的邻接矩阵可能是不对称的。有向图的邻接矩阵可能是不对称的。分析分析分析分析2 2 2 2:顶点顶点v vi i的出度的出度=第第i i行元素之和行元素之和;顶点顶点v vi i的入度的入度=第第i i列元素之和列元素之和;顶点的度顶点的度=第第i i行元素之和行元素之和+第第i i列元素之和。列元素之和。v1v2v3v4A邻接矩阵:邻接矩阵:A.arcs=(v1 v2 v3 v4)v1v2v3v4注:注:注:注:在有向图的邻接矩阵中,在有向图的邻接矩阵中,第第i i行含义:以结点行含义:以结点v vi i为尾的弧为尾的弧(即出度边);即出度边)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 定义 术语 存储 结构 幻灯片
限制150内