数据结构与算法教学课件ppt作者王曙燕chapter7图PPT资料.ppt

上传人:b****1 文档编号:13989657 上传时间:2022-10-16 格式:PPT 页数:99 大小:3.44MB
下载 相关 举报
数据结构与算法教学课件ppt作者王曙燕chapter7图PPT资料.ppt_第1页
第1页 / 共99页
数据结构与算法教学课件ppt作者王曙燕chapter7图PPT资料.ppt_第2页
第2页 / 共99页
数据结构与算法教学课件ppt作者王曙燕chapter7图PPT资料.ppt_第3页
第3页 / 共99页
数据结构与算法教学课件ppt作者王曙燕chapter7图PPT资料.ppt_第4页
第4页 / 共99页
数据结构与算法教学课件ppt作者王曙燕chapter7图PPT资料.ppt_第5页
第5页 / 共99页
点击查看更多>>
下载资源
资源描述

数据结构与算法教学课件ppt作者王曙燕chapter7图PPT资料.ppt

《数据结构与算法教学课件ppt作者王曙燕chapter7图PPT资料.ppt》由会员分享,可在线阅读,更多相关《数据结构与算法教学课件ppt作者王曙燕chapter7图PPT资料.ppt(99页珍藏版)》请在冰豆网上搜索。

数据结构与算法教学课件ppt作者王曙燕chapter7图PPT资料.ppt

,4,第7章图,有向图,:

由于“弧”是有方向的,因此称由顶点集和弧集构成的图为有向图。

例如:

其中V1=A,B,C,D,EVR1=,7.2图的基本概念,5,第7章图,无向图,:

由顶点集和边集构成的图称作无向图。

其中V2=A,B,C,D,E,FE2=(A,B),(A,E),(B,E),(C,D),(D,F),(B,F),(C,F),若VR必有VR,则以(v,w)代替这两个有序对,称v和w之间存在一条边。

7.2图的基本概念,6,有向图或无向图中的弧或边带权后的图分别称作有向网或无向网。

第7章图,7.2图的基本概念,7,第7章图,名词和基本术语,例如:

设图G=(V,VR)和图G=(V,VR),且VV,VRVR,则称G为G的子图。

A,7.2图的基本概念,8,第7章图,名词和基本术语,假设图中有n个顶点,e条边,则,含e=n(n-1)/2条边的无向图称作完全图;

含e=n(n-1)条弧的有向图称作有向完全图;

若边或弧的个数enlogn,则称作稀疏图,,否则称作稠密图。

7.2图的基本概念,9,第7章图,名词和基本术语,若无向图顶点v和w之间存在一条边(v,w),则称顶点v和w互为邻接点,称边(v,w)依附于顶点v和w或边(v,w)与顶点v和w相关联。

与顶点v关联的边的数目定义为v的度(TD)。

TD(B)=,TD(A)=,3,2,7.2图的基本概念,10,第7章图,名词和基本术语,对于有向图,若顶点v和w之间存在一条弧则称顶点v邻接到顶点w,顶点w邻接自顶点v,称弧与顶点v和w相关联。

以v为尾的弧的数目定义为v的出度(OD)。

OD(B)=,ID(B)=,以v为头的弧的数目定义为v的入度(ID)。

出度+入度=该顶点的度(TD),TD(B)=,1,2,3,7.2图的基本概念,11,第7章图,名词和基本术语,设图G=(V,VR)中的u=vi,0,vi,1,vi,m=w顶点序列中,有(vi,j-1,vi,j)VR1jm,则称从顶点u到顶点w之间存在一条路径。

路径上边的数目称作路径长度,有向图的路径也是有向的。

路径A,E,C,D,B,C,D,路径长度为6,7.2图的基本概念,12,第7章图,名词和基本术语,回路:

首尾顶点相同的路径。

简单路径:

顶点不重复的路径。

A,E,C,D,简单回路:

中间顶点不重的回路,B,C,D,B,A,E,C,D,B,C,D,A,A,E,C,D,A,7.2图的基本概念,13,第7章图,名词和基本术语,若无向图G中任意两个顶点之间都有路径相通,则称此图为连通图。

无向图中各个极大连通子图称作此图的连通分量。

B,A,E,C,F,D,7.2图的基本概念,14,第7章图,名词和基本术语,对有向图,若任意两个顶点之间都存在一条有向路径,则称此有向图为强连通图。

否则,其各强连通子图称作它的强连通分量。

B,C,D,A,E,7.2图的基本概念,15,第7章图,名词和基本术语,假设一个连通图有n个顶点和e条边,其中n-1条边和n个顶点构成一个极小连通子图,称该极小连通子图为此连通图的生成树。

A,B,C,D,F,E,7.2图的基本概念,16,第7章图,名词和基本术语,对非连通图,则称由各个连通分量的生成树的集合为此非连通图的生成森林。

A,B,C,D,E,F,7.2图的基本概念,17,第7章图,图的抽象数据类型,ADTGraphADTGraph,数据对象V:

一个集合,该集合中的所有元素具有相同的特性。

数据关系R:

R=VRVR=|P(v,w)(v,wV),基本操作:

1.CreatGraph(G);

2.DestroyGraph(G);

3.LocateVertex(G,v);

4.GetVertex(G,i);

5.InsertVertex(G,u);

P200,7.2图的基本概念,18,7.3图的存储结构,第7章图,图的邻接矩阵表示法,图的邻接表表示法,有向图的十字链表表示法,无向图的邻接多重表表示法,19,7.3图的存储结构,第7章图,图的邻接矩阵表示法,(数组表示法),一维数组:

二维数组:

用于存储顶点信息。

用于存储图中顶点之间关联关系,邻接矩阵,0,1,0,0,1,0,1,0,0,0,1,1,0,0,0,1,0,1,0,0,1,0,0,1,1,1,0,0,0,0,0,1,1,1,0,0,ABCDEF,ABCDEF,无向图,对称矩阵,20,7.3图的存储结构,第7章图,图的邻接矩阵表示法,(数组表示法),一维数组:

用于存储图中顶点之间关联关系,邻接矩阵,0,1,0,0,1,0,0,1,0,0,0,0,0,1,0,1,1,0,0,0,0,0,1,0,0,ABCDE,ABCDE,有向图,非对称矩阵,21,7.3图的存储结构,第7章图,图的邻接矩阵表示法,(数组表示法),一维数组:

用于存储图中顶点之间关联关系,邻接矩阵,15,9,3,2,11,7,21,ABCDE,ABCDE,wij,有向网,非对称矩阵,22,7.3图的存储结构,第7章图,图的邻接矩阵表示法,(数组表示法),形式化描述,#defineMAX_VERTEX_NUM20#defineINFINITY32768typedefenumDG,DN,UDG,UDNGraphKind;

typedefcharVertexData;

typedefArcNodeAdjTypeadj;

OtherInfoinfo;

ArcNode;

typedefstructVertexDatavertexMAX_VERTEX_NUM;

ArcNodearcsMAX_VERTEX_NUMMAX_VERTEX_NUM;

intvernum,arcnum;

GraphKindkind;

AdjMatrix;

23,7.3图的存储结构,第7章图,图的邻接矩阵表示法,(数组表示法),特点:

.存储空间,.便于运算,无向图:

n(n-1)/2,有向图(网):

n2,无向图:

有向图(网):

24,7.3图的存储结构,第7章图,图的邻接表表示法,(链式存储法),.表头结点,.表结点,对图中每个顶点建立一个单链表,第i个单链表中的结点表示依附于顶点vi的边。

图,网,25,7.3图的存储结构,第7章图,图的邻接表表示法,(链式存储法),26,7.3图的存储结构,第7章图,图的邻接表表示法,(链式存储法),27,7.3图的存储结构,第7章图,图的邻接表表示法,(链式存储法),28,7.3图的存储结构,第7章图,图的邻接表表示法,(链式存储法),形式化描述,#defineMAX_VERTEX_NUM20#defineenumDG,DN,UDG,UDNGraphKind;

typedefstructArcNodeintadjvex;

structArcNode*nextarc;

typedefstructVertexNodeVertexDatadata;

ArcNode*firstarc;

VertexNode;

typedefstructVertexNodevertexMAX_VERTEX_NUM;

AdjList;

29,7.3图的存储结构,第7章图,图的邻接表表示法,(链式存储法),特点:

.无向图存储空间:

.,n+2e,无向图:

TD(vi)=第i个单链表上结点的个数,有向图(网):

OD(vi)=第i个单链表上结点的个数,ID(vi)扫描整个邻接表,逆邻接表,30,7.3图的存储结构,第7章图,图的邻接表表示法,(链式存储法),逆邻接表,31,7.3图的存储结构,第7章图,有向图的十字链表表示法,(链式存储法),顶点和弧分别各用一种存储结构的结点表示。

弧头相同的弧被链在同一链表上,弧尾相同的弧也被链在同一链表上,链表的头结点就是顶点结点。

弧的结点结构,顶点的结点结构,32,7.3图的存储结构,第7章图,有向图的十字链表表示法,33,7.3图的存储结构,第7章图,有向图的十字链表表示法,形式化描述,#defineMAX_VERTEX_NUM20#defineenumDG,DN,UDG,UDNGraphKind;

typedefstructArcNodeinttailvex,headvex;

structArcNode*hlink,*tlink;

InfoType*info;

ArcNode*firstin,*firstout;

intvexnum,arcnum;

OrthList;

34,7.3图的存储结构,第7章图,无向图的邻接多重表表示法,顶点和边分别各用一种存储结构的结点表示。

依附于相同顶点的边被链在同一链表上,每条边依附于两个顶点,所以每个边结点同时被链接在两个链表中,链表的头结点就是顶点结点。

同时还在边结点中增加了一个访问标志位。

边的结点结构,顶点的结点结构,35,7.3图的存储结构,第7章图,无向图的邻接多重表表示法,36,第7章图,图的创建,(邻接矩阵),intCreateDN(AdjMatrix*G)/*创建一个有向网*/inti,j,k,weight;

charv1,v2;

printf(输入图的顶点数和弧数(v,h)n);

scanf(%d,%d,37,for(k=0;

karcnum;

k+)printf(输入第%d条边的两个顶点(v1,v2)n,i+1);

scanf(%c,%c,%d,续:

intLocateVertex(AdjMatrix*G,charv)inti=-1,j;

for(j=0;

jvexnum;

j+)if(G-vertexj=v)i=j;

break;

return(i);

38,7.4图的遍历,第7章图,从图中某个顶点出发遍历图,访遍图中其余顶点,并且使图中的每个顶点仅被访问一次的过程。

深度优先搜索,广度优先搜索,39,7.4图的遍历,第7章图,深度优先搜索,基本思想:

.从图中某个顶点v0出发,首先访问v0;

类似于树的先根次序遍历,.找出刚访问过的顶点的第一个未被访问的邻接点,然后访问该顶点。

以该顶点为新顶点,重复此步骤,直到刚访问过的顶点没有未被访问的邻接点为止;

.返回前一个访问过的且仍有未被访问的邻接点的顶点,找出该顶点的下

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 党团建设

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1