数据结构与算法教学课件ppt作者王曙燕chapter7图PPT资料.ppt
- 文档编号:13989657
- 上传时间:2022-10-16
- 格式:PPT
- 页数:99
- 大小:3.44MB
数据结构与算法教学课件ppt作者王曙燕chapter7图PPT资料.ppt
《数据结构与算法教学课件ppt作者王曙燕chapter7图PPT资料.ppt》由会员分享,可在线阅读,更多相关《数据结构与算法教学课件ppt作者王曙燕chapter7图PPT资料.ppt(99页珍藏版)》请在冰豆网上搜索。
,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;
类似于树的先根次序遍历,.找出刚访问过的顶点的第一个未被访问的邻接点,然后访问该顶点。
以该顶点为新顶点,重复此步骤,直到刚访问过的顶点没有未被访问的邻接点为止;
.返回前一个访问过的且仍有未被访问的邻接点的顶点,找出该顶点的下
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 算法 教学 课件 ppt 作者 王曙燕 chapter7