第七章图PPT讲稿.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第七章图PPT讲稿.ppt》由会员分享,可在线阅读,更多相关《第七章图PPT讲稿.ppt(70页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第七章图第1页,共70页,编辑于2022年,星期一第七章 图v7.1 图的定义和术语图(Graph)图G是由两个集合V(G)和E(G)组成的,记为G=(V,E)其中:V(G)是顶点的非空有限集 E(G)是边的有限集合,边是顶点的无序对或有序对有向图有向图G是由两个集合V(G)和E(G)组成的 其中:V(G)是顶点的非空有限集 E(G)是有向边(也称弧)的有限集合,弧是顶点的有序对,记为,v,w是顶点,v为弧尾,w为弧头第2页,共70页,编辑于2022年,星期一第七章 图无向图无向图G是由两个集合V(G)和E(G)组成的 其中:V(G)是顶点的非空有限集 E(G)是边的有限集合,边是顶点的无序对
2、,记为(v,w)或(w,v),并且(v,w)=(w,v)第3页,共70页,编辑于2022年,星期一例245136G1图G1中:V(G1)=1,2,3,4,5,6 E(G1)=,例157324G26图G2中:V(G2)=1,2,3,4,5,6,7 E(G1)=(1,2),(1,3),(2,3),(2,4),(2,5),(5,6),(5,7)第4页,共70页,编辑于2022年,星期一7.1 图的定义和术语有向完备图n个顶点的有向图最大边数是n(n-1)无向完备图n个顶点的无向图最大边数是n(n-1)/2例213213有向完备图无向完备图权与图的边或弧相关的数叫网带权的图叫第5页,共70页,编辑于2
3、022年,星期一7.1 图的定义和术语子图如果图G(V,E)和图G(V,E),满足:VV,EE,则称G为G的子图356例245136图与子图第6页,共70页,编辑于2022年,星期一7.1 图的定义和术语顶点的度v无向图中,顶点的度为与每个顶点相连的边数v有向图中,顶点的度分成入度与出度入度:以该顶点为头的弧的数目出度:以该顶点为尾的弧的数目v一个有n个顶点和e条边或弧的图,满足:例245136G1顶点2入度:1 出度:3顶点4入度:1 出度:0例157324G26顶点5的度:3顶点2的度:4第7页,共70页,编辑于2022年,星期一7.1 图的定义和术语路径路径是顶点的序列V=Vi,0,Vi
4、,1,Vi,n,满足(Vi,j-1,Vi,j)E,或E(1jn)路径长度沿路径边的数目或沿路径各边权值之和回路第一个顶点和最后一个顶点相同的路径叫简单路径序列中顶点不重复出现的路径叫简单回路除了第一个顶点和最后一个顶点外,其余顶点不重复出现的回路叫第8页,共70页,编辑于2022年,星期一例157324G26例245136G1路径:1,2,3,5,6,3路径长度:5简单路径:1,2,3,5回路:1,2,3,5,6,3,1简单回路:3,5,6,3路径:1,2,5,7,6,5,2,3路径长度:7简单路径:1,2,5,7,6回路:1,2,5,7,6,5,2,1简单回路:1,2,3,1第9页,共70页
5、,编辑于2022年,星期一7.1 图的定义和术语v图的连通性连通从顶点V到顶点W有一条路径,则说V和W是连通的。无向图的连通性v连通图无向图中任意两个顶点都是连通的叫v连通分量非连通图的每一个连通部分叫ABCDEFGIJLHMKABCDEHMFGIJLK无向图G3无向图G3的三个连通分量第10页,共70页,编辑于2022年,星期一7.1 图的定义和术语有向图的连通性v强连通图有向图中,如果对每一对Vi,VjV,ViVj,从Vi到Vj 和从Vj到 Vi都存在路径,则称G是v强连通分量:非强连通图的每一个强连通部分叫例245136强连通图356例强连通分量第11页,共70页,编辑于2022年,星期
6、一7.2 图的存储结构v多重链表例G12413例15324G2V1V2 V4 V3 V1 V2 V4 V5 V3第12页,共70页,编辑于2022年,星期一7.2 图的存储结构v邻接矩阵表示顶点间相联关系的矩阵定义:设G=(V,E)是有n1个顶点的图,G的邻接矩阵A是具有以下性质的n阶方阵第13页,共70页,编辑于2022年,星期一7.2 图的存储结构例G12413例15324G2第14页,共70页,编辑于2022年,星期一7.2 图的存储结构特点:v无向图的邻接矩阵对称,可压缩存储;有n个顶点的无向图需存储空间为n(n+1)/2v有向图邻接矩阵不一定对称;有n个顶点的有向图需存储空间为nv无
7、向图中顶点Vi的度TD(Vi)是邻接矩阵A中第i行(列)元素之和v有向图中,顶点Vi的出度是A中第i行元素之和顶点Vi的入度是A中第i列元素之和第15页,共70页,编辑于2022年,星期一7.2 图的存储结构特点:v网络的邻接矩阵可定义为:例1452375318642第16页,共70页,编辑于2022年,星期一7.2 图的存储结构v关联矩阵表示顶点与边的关联关系的矩阵定义:设G=(V,E)是有n1个顶点,e0条边的图,G的关联矩阵A是具有以下性质的ne阶矩阵第17页,共70页,编辑于2022年,星期一4321例G124131234例15324G2123456432156第18页,共70页,编辑
8、于2022年,星期一例BDAC123456ABCD432156第19页,共70页,编辑于2022年,星期一7.2 图的存储结构特点v关联矩阵每列只有两个非零元素,是稀疏矩阵;n越大,零元素比率越大。v无向图中顶点Vi的度TD(Vi)是关联矩阵A中第i行元素之和。v有向图中,顶点Vi的出度是A中第i行中“1”的个数。顶点Vi的入度是A中第i行中“-1”的个数。第20页,共70页,编辑于2022年,星期一7.2 图的存储结构v邻接表表示顶点与边的关联关系是图的一种链式存储结构,适用于有向图和无向图。为图中每个顶点vi建立一个单链表,第i个单链表中的结点表示依附于顶点Vi的边(有向图中指以Vi为尾的
9、弧),即所有邻接(于)vi的顶点vj链成一个单链表(称为关于vi的邻接表)。v邻接表中每个表结点都有两个域:邻接点域 adjvex和链域 next;另外若要表示边上的信息如(权值),则在表结点中还应增加一个数据域cost.typedef struct node int adjvex;/邻接点域,存放与Vi邻接的顶点的序号 struct node *next;/链域,将邻接表的所有表点链在一起JD;adjvex next第21页,共70页,编辑于2022年,星期一表头接点:typedef struct tnode int vexdata;/存放顶点信息 struct node *firstarc
10、;/vi的邻接表的头指针,指示第一个邻接点TD;TD gM;/g0不用vexdata firstarc7.2 图的存储结构每个顶点vi的邻接表设置一个表头结点,头结点包含两个域,顶点域 vexdata和指针域 firstarc,它是。为了便于随机访问任意顶点的邻接表,将所有头结点顺序存储在一个数组中,这样就构成了图的邻接表表示第22页,共70页,编辑于2022年,星期一例G1bdac例aecbdG21234acdbvexdata firstarc 3 2 4 1adjvex next1234acdbvexdata firstarc 4 2 1 2adjvex next5e 4 3 5 1 5
11、3 2 3第23页,共70页,编辑于2022年,星期一7.2 图的存储结构特点v无向图中顶点Vi的度为第i个单链表中的结点数v有向图中顶点Vi的出度为第i个单链表中的结点个数顶点Vi的入度为整个单链表中邻接点域值是i的结点个数v优点:易找到任一顶点的第一个邻接点和下一个邻接点v缺点:判定任意两个顶点之间是否有边或弧相连的办法:搜索第i和第j个单链表。不及邻接矩阵方便。第24页,共70页,编辑于2022年,星期一7.2 图的存储结构逆邻接表:有向图中对每个结点建立以Vi为头的弧的单链表例G1bdac1234acdbvexdata firstarc 4 1 1 3adjvex next第25页,共
12、70页,编辑于2022年,星期一void creategraph(int n,TD g)int e,i,s,d;struct node*p,*q;printf(input number_edge(e):);/*输入边的数目存入e中*/scanf(%d,&e);for(i=1;i=n;i+)getchar();printf(“the%d information:”,i);/*提示输入顶点信息*/scanf(%c,&gi.vexdata);gsi.firstarc=NULL;for(i=1;in:,i);/*输入边信息*/scanf(%d,%d,&s,&d);p=(JD*)malloc(sizeo
13、f(JD);/*开辟存储边的空间*/q=(JD*)malloc(sizeof(JD);p-adjvex=d;p-next=gs.firstarc;gs.firstarc=p;/*p和s的firstarc指针连接起来*/q-adjvex=s;q-next=gd.firstarc;gd.firstarc=q;/*q和s的firstarc指针连接起来*/*完成一个边的创建*/输入顶点及边的信息,建立无向图邻接表vexdata firstarcadjvex next第26页,共70页,编辑于2022年,星期一void defarc(int xMM,int n,TD g)int i,j;JD*p;for
14、(i=0;in;i+)gi+1.vexdata=i;gi+1.firstarc=NULL;for(j=0;jadjvex=j+1;p-next=gi+1.firstarc;gi+1.firstarc=p;12341342 2 7 8 355 6 4 1 5 1 2 8 2 678678 7 3 6 3 5 4邻接矩阵X99函数defarc():由图的邻接矩阵建立邻接表第27页,共70页,编辑于2022年,星期一7.3 图的遍历v定义:从图中某个顶点出发遍访图中其余顶点,且使每个顶点仅被访问一次的过程.v实质:对图的每个顶点查找邻接点的过程。其遍历算法是求解图的连通性、拓扑排序、求关键路径等算法
15、的基础。v图的两种遍历方式(有向图和无向图均适用):深度优先搜索DFS(Depth First Search)广度优先搜索BFS(Breadth First Search)第28页,共70页,编辑于2022年,星期一7.3 图的遍历v深度优先遍历(DFS)从图中某个顶点V0 出发,访问此顶点。依次从V0的各个未被访问的邻接点出发深度优先遍历图,直至图中所有和V0有路径相通的顶点都被访问到。若图中还有顶点未被访问,另选图中一个未被访问的顶点作起始点,重复上述过程,直至图中所有顶点都被访问到为止。V1V2V4V5V3V7V6V8例深度遍历:V1 V2 V4 V8 V5 V3 V6 V7(遍历序列不
16、唯一)v1 v3 v7 v6 v2 v5 v8 v4第29页,共70页,编辑于2022年,星期一V1V2V4V5V3V7V6V8例例V1V2V4V5V3V7V6V8深度遍历:V1 V2 V4 V8 V5 V6 V3 V7深度遍历:V1 V2 V4 V8 V5 V6 V3 V7第30页,共70页,编辑于2022年,星期一V1V2V4V5V3V7V6V8例深度遍历:V1 V2 V4 V8 V3 V6 V7 V5第31页,共70页,编辑于2022年,星期一7.3 图的遍历深度优先遍历算法v递归算法(图采用邻接表表示)V1V2V4V5V3V7V6V8例深度遍历:V112341342vexdatafir
17、starc 2 7 8 3adjvexnext55 6 4 1 5 1 2 8 2678678 7 3 6 3 5 4V3 V7 V6 V2 V5 V8 V4第32页,共70页,编辑于2022年,星期一递归算法(图采用邻接表表示)开始访问V,置标志求V邻接点有邻接点p求下一邻接点pVp访问过结束NYNYDFS开始标志数组初始化i=1Vi访问过DFSi=i+1in结束NNYY第33页,共70页,编辑于2022年,星期一int visitedM;void traver(TD g,int n)int i;for(i=1;i=n;i+)visitedi=0;/*设置每个顶点为未访问*/for(i=1;
18、iadjvex;if(visitedi=0)dfs(g,i);p=p-next;12341342 2 7 8 355 6 4 1 5 1 2 8 2678678 7 3 6 3 5 4函数dfs():对顶点V进行遍历第35页,共70页,编辑于2022年,星期一V1V2V4V5V3V7V6V8例12341342vexdata firstarc 2 7 8 3adjvex next55 6 4 8 2678678 7深度遍历:V1V3 V7 V6 V2 V4 V8 V5第36页,共70页,编辑于2022年,星期一V1V2V4V5V3V7V6V8例广度遍历:V1 V2 V3 V4 V5 V6 V7
19、V87.3 图的遍历广度优先遍历(BFS)v从图中的某个顶点v0出发,访问此顶点,v依次访问v0的所有未被访问过的邻接点,之后按这些顶点被访问的先后次序依次访问它们的邻接点,直至图中所有和v0有路径相通的顶点都被访问到。v若此时图中尚有顶点未被访问,则另选图中一个未曾被访问的顶点作起始点,重复上述过程,直至图中所有顶点都被访问到为止(遍历序列不唯一)V1 V3 V2 V7 V6 V5 V4 V8第37页,共70页,编辑于2022年,星期一V1V2V4V5V3V7V6V8例例V1V2V4V5V3V7V6V8广度遍历:V1 V2 V3 V4 V5 V6 V7 V8广度遍历:V1 V2 V3 V4
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第七 PPT 讲稿
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内