图基本概念、图遍历算法.pptVIP

  1. 1、本文档共48页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
图基本概念、图遍历算法

图基本概念、图遍历算法 胡俊峰 2011/05/23 回顾一下前面讲的内容 抽象数据类型 线性表、队列、栈 二叉树、堆、huffman树 Hash表与搜索引擎 排序与索引 搜索算法 openCV与图像处理 Spider to search engine 图像特征提取与图像检索 方向导数 角点 直方图分布 Blob + Gradient directions ? Scale-invariant feature transform?(or?SIFT)? 主要内容 图的基本概念 图的相邻矩阵及邻接表的表示方法 图抽象数据类型 图的周游方法 求图的最小生成树(林) 图的基本概念 反映连通关系 反映连通属性 图的形式化定义 图由顶点(vertex)集合和边(edge)集合E组成, 记为G=(V,E)。 每条边就是一个顶点的偶对,所以E也就是V上的一个二元关系。 例如: V = { a,b,c,d}; E = {a,b, a,d, c,d, d,a} 有向图无向图 ‘度’ 的定义 关联:由一个顶点发出的边构成与该定点的一个关联。 顶点的度:与该顶点关联的所有的边或弧的数目。 (邻接点的个数定义为顶点的度。) 入度:(仅对有向图)以该顶点为头的弧数。 路径 无向图中的顶点序列v1,v2,… ,vk,若(vi,vi+1)?E( i=1,2,…k-1), v =v1, u =vk, 则称该序列是从顶点v到顶点u的路径;若v=u,则称该序列为回路; 有向图中的顶点序列v1,v2,… ,vk, 若vi,vi+1?E ( i=1,2,…k-1), v =v1, u =vk, 则称该序列是从顶点v到顶点u的路径;若v=u,则称该序列为回路; 路径上边或弧的数目称为该路径的路径长度。 连通图 在无(有)向图G =( V, E )中,若对任何两个不同顶点v、u都存在从v到u的路径,则称G是连通图。 图的其他一些相关概念 子图: 对于 G=(V,E) , G’ =(V’,E’) 如果有 V’ in V E’ in E, 则称G’为G的子图。 带权图(网络): 每条边加上权值信息。带权图也常被称为‘加权图’。带权图中的路径通常定义为路径之上所有边的权值总和。 图的存储结构1 —— 邻接矩阵表示法 设图 G = (V,E) G = (V,E)是一个有 是一个有 n个顶点的图 , 图的邻接矩阵是一个二维数组 edge[n][n],定义: vexs1[]={‘a’, ‘b’, ‘c’, ‘d’} ; vexs2[]={v0,v1,v2,v3,v4} 邻接矩阵表示法的特点 (1)无向图的关系矩阵一定是一对称矩阵。 (2)无向图的关系矩阵的第i行(或第i列)非零元素个数为第i个顶点的度D(vi)。 (3)?有向图的关系矩阵的第i行非零元素个数为第i个顶点的出度OD(vi),第i列非零元素个数就是第i个顶点的入度ID(vi)。 (4) 从图的邻接矩阵表示,很容易确定图中任意两个顶点之间是否有边相连。添加或删除边也很方便。 带权图的邻接矩阵表示 如果G是带权的图,wij是边(vi,vj)或 vi,vj的权,则其关系矩阵定义为∶ 邻接矩阵表示法结构定义 typedef char VexType; typedef float AdjType; typedef struct { int n; /* 图的顶点个数 */ VexType *vexs; /* 顶点信息 */ AdjType *arcs[ ]; /* 边信息,二维数组 */ }GraphMatrix; 带权图的邻接矩阵表示 带权图的邻接矩阵表示 矩阵初始化: 邻接矩阵操作函数 邻接表表示法—— 对图中每个顶点建立一个单链表, 第i个单链表中的结点表示依附于该顶点Vi的边(或弧) 矩阵两种存储表示的空间开销比较 设图G有n个顶点,e条边. 图的邻接矩阵表示的空间代价为O(n2); 若图G是无向图, 则图的邻接表表示的空间代价为O(n+2e); 若图G是有向图, 则图的邻接表表示的空间代价为O(n+e); 若图中en2,则用邻接表表示图比较节省空间, 如果e达到n2数量级时,由于邻接表中增加了辅助的链域,采用邻接矩阵表示图更节省空间。 特别对于无权图而言,关系矩阵的每个元素实际上只要一个二进制位就可以表示。 图的操作与抽象数据类型 深度

文档评论(0)

xy88118 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档