图以及深度优先和广度优先(修改版).pptVIP

  1. 1、本文档共13页,可阅读全部内容。
  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文档。上传文档
查看更多
图以及深度优先和广度优先(修改版)

引言: 图是一种非线性数据结构。在图结构中,数据元素之间的关系是多对多的,即如果任选一个顶点作为初始顶点,则图中任意一个顶点有多个前驱顶点和多个后记顶点。这次实验课提前给大家拓展一些图方面的知识,并在此基础之上引入图的两种搜索方法(广度优先和深度优先)让大家来学习。 图的基本概念 图是由顶点集合及顶点间的关系集合组成的一种数据结构。图G的定义是: G =( V,E ) 其中, V = { x | x∈某个数据元素集合 } E = { ( x,y ) | x,y ∈ V } (x,y)表示从 x到 y的一条双向通路,即(x,y)是无方向的;Path(x,y)表示从 x到 y的一条单向通路,即Path(x,y)是有方向的。 图的基本描述 顶点和边:图中的结点称作顶点,图中的第i个顶点记做vi。两个顶点vi和vj相关联称作顶点vi和vj之间有一条边,图中的第k条边记做ek,ek =(vi,vj)或<vi,vj>。 有向图和无向图:在有向图中,顶点对<x ,y>是有序的,顶点对<x,y>称为从顶点x到顶点y的一条有向边,有向图中的边也称作弧;在无向图中,顶点对(x,y)是无序的,顶点对(x,y)称为与顶点x和顶点y相关联的一条边。 完全图:在有n个顶点的无向图中,若有n(n-1)/2条边,即任意两个顶点之间有且只有一条边,则称此图为无向完全图;在有n个顶点的有向图中,若有n(n-1)条边,即任意两个顶点之间有且只有方向相反的两条边,则称此图为有向完全图。 有向图和无向图实例 2 1 3 4 有向图 无向图 邻接顶点:在无向图G中,若(u,v)是E(G)中的一条边,则称u和v互为邻接顶点,并称边(u,v)依附于顶点u和v;在有向图G中,若<u,v>是E(G)中的一条边,则称顶点u邻接到顶点v,顶点v邻接自顶点u,并称边<u,v>和顶点u和顶点v相关联。 路径:在图G=(V,E)中,若从顶点vi出发有一组边使可到达顶点vj,则称顶点vi到顶点vj的顶点序列为从顶点vi到顶点vj的路径。 权:有些图的边附带有数据信息,这些附带的数据信息称为权。带权的图也称作网络或网。 路径长度:对于不带权的图,一条路径的路径长度是指该路径上的边的条数;对于带权的图,一条路径的路径长度是指该路径上各个边权值的总和。 要表示一个图,有两种标准的方法,即邻接表和邻接矩阵。这两种表示法既可用于有向图,也可用于无向图。 在实践中我们通常采用的是邻接表表示法,因为这种方法表示稀疏图(图中的边远远小于图中的结点)比较紧凑。但是,当遇到稠密图时,或者必须很快判别两个给定的定点是否存在连接边时,通常采用邻接矩阵表示法。 图的存储结构 图的两种表示方法: 3 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 0 1 0 0 1 1 0 1 1 1 0 1 0 1 0 0 1 1 0 1 1 1 0 1 0 2 5 / 1 5 3 4 / 2 4 / 2 5 3 / 4 1 2 / 邻接表 邻接矩阵 广度优先搜索法:以接近起始节点的程度依次扩展节点,即对下一层节点搜索前,必须先搜索完本层所有节点 深度优先搜索法:首先扩展最新产生的节点,每层只对一个节点进行扩展,除非搜索失败或已达到预先约定的最大深度,才会退回去搜索原来忽略节点 两种经典的搜索方法 广度优先搜索 广度优先搜索是最简单的图搜索算法之一,也是很多重要的图算法的原型。 在给定图和一个特定源定点 S的情况下,广度优先将系统的搜索图中的边。该搜索算法之所以成为广度优先搜索,是因为它始终将已发现和未发现定点之间的边界沿着其广度方向向外拓展。即,算法首先会发现和S距离为K的定点,然后才会发现和S距离为K+1的其他顶点。 下面的广度优先搜索过程 BFS 假定输入图G = ( V,E )采用邻接表Adj表示,对于图中的每个顶点还采用几种另外的数据结构,对于每个顶点u ∈V,其标注色彩存储于color[u]中,u的父结点存于变量p[u]中。由该算法计算出来的源顶点s和u之间的距离存于变量d[u]中。该算法还使用了一个先进先出队列Q来管理所有的灰色顶点。 图的搜索 算法伪代码: 算法的一到四行是对除了原点S以外的所有点进行初

文档评论(0)

181****2553 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档