博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
图的遍历
阅读量:5317 次
发布时间:2019-06-14

本文共 831 字,大约阅读时间需要 2 分钟。

        

,深度优先搜索

基本思想:

以图中某个顶点Vi为出发点,首先訪问出发点Vi,然后任选一个Vi的未訪问过的临界点Vj,Vj为新的出发点继续进行深度优先搜索,依此类推,直至图中全部顶点都被訪问过。

深度优先搜索能够看成一个递归过程。

详细过程:

   首先选定结点v0为出发点,訪问V0。然后从V0的邻接点V1V3V5。任选一个訪问,此处我们訪问V1V1有两个邻接点V0V2V0已经被訪问过。我们接着訪问V2 V23个邻接点。当中V1被訪问过。我们选择V3或者V4訪问,此处先訪问V4。到了V4这里,V43个邻接点V2V3V5,当中V2被訪问过,我们訪问V3V3的邻接点都已訪问完,我们返回V4。接着訪问V5;至此,全部节点都已訪问完毕。

注意事项:

        1,搜索到某个顶点时,假设这个顶点的全部邻接点都被訪问过,那么搜索就要回到前一个被訪问过的顶点,再从该顶点的下一个未被訪问的邻接点開始深度优先搜索;

                           2,深度优先搜素的顶点的訪问顺序不是唯一的;

,广度优先搜索

基本思想:

从图中某个顶点Vi出发。在訪问了Vi之后依次訪问Vi的全部邻接点,然后依次从这些邻接点出发按广度优先索索方法遍历图的其它顶点,反复这一过程直至全部顶点被訪问到;

广度优先搜索类似于树的依照层次遍历的过程。

訪问过程:

首先从起点V0 出发,訪问V0.VO3个未被訪问的邻接点V1V3V5;

先訪问V1。然后V3。最后V5

然后訪问V1未被訪问的邻接点V2

接着訪问V3未被訪问的邻接点V4

 

 

 

小结:

在广度优先搜索中。若对X的訪问先于Y,则对于X的邻接点的訪问也先于Y进行。也就是说广度优先搜索邻接点的寻找具有先进先出的特征;

为了保证结点这样的先后的特征。能够採用队列来暂存那些刚訪问过的顶点。

 

版权声明:本文博客原创文章,博客,未经同意,不得转载。

转载于:https://www.cnblogs.com/hrhguanli/p/4752079.html

你可能感兴趣的文章
windows 安装yaml支持和pytest支持等
查看>>
读书笔记:季羡林关于如何做研究学问的心得
查看>>
面向对象的优点
查看>>
[转载]unix环境高级编程备忘:理解保存的设置用户ID,设置用户ID位,有效用户ID,实际用户ID...
查看>>
堆排序
查看>>
套接口和I/O通信
查看>>
thinkpaidE480office安装文件夹
查看>>
eclipse中git插件配置 编辑
查看>>
SQL获取每月最后一天记录
查看>>
crontab 使用整理
查看>>
【TOJ 2406】Power Strings(KMP找最多重复子串)
查看>>
hdu 1010
查看>>
keystone源码分析(一)——Paste Deploy的应用
查看>>
世界是座孤儿院
查看>>
VUE路由history模式坑记--NGINX
查看>>
线程同步-使用SimaphoreSlim类
查看>>
Spring整合MyBatis
查看>>
Java/Java Web中乱码解决汇总
查看>>
表格操作
查看>>
TortoiseGit使用指南
查看>>