zoukankan      html  css  js  c++  java
  • 图的深度优先遍历

    深度优先算法,是计算机程序的一种编制原理,就是在一个问题出现多种可以实现的方法和技术的时候,应该优先选择哪个更合适的,也是一种

    普遍的逻辑思想,此种思想在运算的过程中,用到计算机程序的一种递归思想。

    深度优先搜索算法(Depth-First-Search),解决的是图的搜索问题,是搜索算法的一种,属于盲目搜索。利用深度优先搜索算法可以产生目标

    图的相应拓扑排序表,利用拓扑排序表可以方便的解决很多相关的图论问题,如最大路径问题等。

    形象的说,相当于在漆黑的夜里,你只能看到你站的位置和你前面的路,但你不知道每条路能够通向哪里。

    搜索的任务就是,给出初始位置和目标位置,要求找到一条到达目标的路径。

    深度优先就是,从初始点出发,不断向前走,如果碰到死路了,就往回走一步,尝试另一条路,知道发现了

    目标位置。这种不撞南墙不回头的方法,即使成功也不一定找到一条号路,但好处是需要记住的位置较少。

    下面转自:http://blog.csdn.net/todd911/article/details/9191481

    深度优先遍历是连通图的一种遍历策略。其基本思想如下:

    设x是当前被访问顶点,在对x做过访问标记后,选择一条从x出发的未检测过的边(x,y)。若发现顶点y已访问过,则重新选择另一条从x出发的未检测过的边,否则沿边(x,y)到达未曾访问过的y,对y访问并将其标记为已访问过;然后从y开始搜索,直到搜索完从y出发的所有路径,即访问完所有从y出发可达的顶点之后,才回溯到顶点x,并且再选择一条从x出发的未检测过的边。上述过程直至从x出发的所有边都已检测过为止。

    例如下图中:

    1.从0开始,首先找到0的关联顶点3
    2.由3出发,找到1;由1出发,没有关联的顶点。
    3.回到3,从3出发,找到2;由2出发,没有关联的顶点。
    4.回到4,出4出发,找到1,因为1已经被访问过了,所以不访问。
    所以最后顺序是0,3,1,2,4
  • 相关阅读:
    linux开发板出现Read-only file system的解决办法
    nginx源码分析之网络初始化
    nginx源码分析之hash的实现
    hdu4833 Best Financing(DP)
    PHP读取office word文档内容及图片
    nginx+uwsgi+bottle python服务器部署
    创建、托管和浏览文档
    python非官方扩展库
    simplexml_load_string 转换xml为数组
    PHPExcel 导出数据(xls或xlsx或csv)- 助手类(函数)
  • 原文地址:https://www.cnblogs.com/xh0102/p/5247460.html
Copyright © 2011-2022 走看看