zoukankan      html  css  js  c++  java
  • 广度优先搜索BFS

    广度优先搜索可以形成一个广度优先搜索树

    算法时间为O(V+E),两重循环

    输入:图g,起点start(int)

    需要的数据结构:队列Q、color数组(存放每个顶点的颜色)

    算法过程:

    1. 预处理:1)color数组的每个值都赋为white(表示没被访问过);2)队列Q为空队列

    2. 处理起点: 1)color[start]=gray,gray表示顶点已被访问,但其子节点未被处理(指的是入队列);2)Q.enQueue(start)

    3. 循环以下操作,直到Q为空

    1)int u=Q.deQueue()

    2)对u进行访问处理,比如打印之类的

    3)循环,对于和u相邻的每个顶点v,如果v是white的,则(1)color[v]=gray;(2)Q.enQueue(v);

    4)循环结束后,(1)color[u]=black,表示u节点的子节点也被处理过了;(2)还可以在这里对u进行终结时的访问处理,比如打印之类的

    注意:对节点的处理,在节点出队列时进行(2)或是循环结束时进行(4)

  • 相关阅读:
    sqlplus中var和print的使用
    sqlplus中break命令的使用
    android之OptionsMenu
    android之TabHost(下)
    android之TabHost(上)
    android之dialog
    android之listview
    android开发事件监听
    决策树ID3算法示例
    回溯法-设置碉堡
  • 原文地址:https://www.cnblogs.com/james6176/p/4488426.html
Copyright © 2011-2022 走看看