数据结构(第7章)图.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构(第7章)图

第七章 图;第七章 图;7.1 基本术语;顶点V的度 = 与V相关联的边的数目 在有向图中: 顶点V的出度 = 以V为起点有向边数 顶点V的入度 = 以V为终点有向边数 顶点V的度 = V的出度+V的入度 设图G的顶点数为n,边数为e 图的所有顶点的度数之和 = 2*e (每条边对图的所有顶点的度数和“贡献”2度) ; 在图G=V,E中,若有顶点序列v1,v2,… ,vk,且vi,vi+1?E(有向图)或(vi,vi+1)?E(无向图),其中i=1,2,…k-1,v=v1,u=vk,则称该序列是从顶点v到顶点u的路径;若v=u,则称该序列为回路。;简单路径、简单回路 在一条路径中, 除起点和终点外,若其余顶点各不相同,则称该路径为简单路径。 由简单路径组成的回路称为简单回路。 例如在上面的无向图中,V0,V1,V2,V3是简单路径V0,V1,V2,V4,V1不是简单路径;在下面的有向图中,V0,V2,V3,V0是简单回路。;连通图、强连通图 在无(有)向图G=V, E中,若对任何两个顶点u、v都存在从u到v的路径,则称G是连通图(强连通图)。;连通分量、强连通图分量 无(有)向图的极大连通子图称为其(强)连通分量。;生成树 一个连通图的生成树是一个极小连通子图,它含有图中全部顶点,但只有足以构成一棵树的n-1条边。;如果在一棵生成树上添加一条边,必定构成一个环。 一棵有n个顶点的生成树有且仅有n-1条边。 如果一个图有n个顶点和小于n-1条边,则是非连通图。 如果一个图有n个顶点和多于n-1条边,则一定有环。 有n-1条边的图不一定是生成树。 生成树可能不惟一。;无向图及其生成树;赋权图;有向图的强连通子图;例1 交通图(公路、铁路) 顶点:地点 边:连接地点的公路 交通图中的单行道双行道,分别用有向边、无向边表示;7.2 图的存储结构;7.2.1 图的数组表示法;注:用两个数组分别存储顶点表和邻接矩阵 #define INFINITY INT_MAX //最大值∞ #define MAX_VERTEX_NUM 20 //假设的最大顶点数 Typedef enum {DG, DN, AG, AN } GraphKind; //有向/无向图,有向/无向网;对于n个顶点的图或网,空间效率=O(n2);Status CreateUDN(Mgraph G){ //无向网的构造,用邻接矩阵表示 scanf(G.vexnum, G.arcnum, IncInfo); //输入总顶点数n、总弧数e和信息 for(i=0;iG.vexnum,;++i) scanf(G.vexs[i] ); //输入n个顶点值,存入一维向量;对于n个顶点e条弧的网, 建网时间效率 = O(n+n2+e*n);1)无向图的邻接矩阵是对称矩阵,同一条边表示了两次; 2)顶点v的度:等于二维数组对应行(或列)中值为1的元素个数; 3)判断两顶点v、u是否为邻接点:只需判二维数组对应分量是否为1; 4)顶点不变,在图中增加、删除边:只需对二维数组对应分量赋值1或清0;;5)设图的顶点数为 n ,用有n个元素的一维数组存储图的顶点,用邻接矩阵表示边,则G占用的存储空间为:n+n2;图的存储空间占用量只与它的顶点数有关,与边数无关;适用于边稠密的图;?;1) 有向图的邻接矩阵不一定是对称的; 2) 顶点v的出度:等于二维数组对应行中值为1的元素个数; 3)顶点v的入度:等于二维数组对应列中值为1的元素个数;;网的数组表示法;7.2.2 图的邻接表存储结构;网的邻接链表表示;7.2.2 邻接表的类型定义;7.2.2(续) 图的邻接表表示;有向图的邻接表表示;有向图的逆邻接表表示;7.2.3 有向图的十字链表表示;v0;v0;7.2.4 无向图的邻接多重表表示;v0;7.3 图的遍历;7.3.1 深度优先搜索(DFS);从图中某顶点v出发: (1)访问顶点v; (2)依次从v的未被访问的邻接点出发,对图进行深度优先遍历;直至图中和v有路径相通的顶点都被访问; (3)若此时图中尚有顶点未被访问,则从一个未被访问的顶点出发,重新进行深度优先遍历,直到图中所有顶点均被访问过为止。;深度优先遍历过程是递归的,在遍历过程中,若某个顶点的所有邻接顶点均被访问过,则需要回溯。;void DFSTraverse(Gra

文档评论(0)

f8r9t5c + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档