搜索学习(ing...)

一:深度优先搜索

  •  将整个问题空间表示为一个图;
  • 从图中某个顶点V出发:
  1. 访问顶点V;
  2. 依次从未被V访问的领接点出发,对图进行深度优先遍历,直至图中和V有路径相通的顶点都被访问;
  3. 若此时图中还有未被访问的顶点,则从一个未被访问过的顶点出发,重新进行深度优先遍历,直至图中所有点都被访问过为止。

框架:

      将问题的各状态之间的转移关系描述为一个图,则深度优先搜索遍历整个图的框架为:

       Dfs(v){

           if(V被访问过)

                    return;

           将V标记为访问过;

           对和V相邻的每个点 u: Dfs(u);

       }

       int main()

      {

            while(在图中找到未访问的顶点V)

                     Dfs(V);

       }

posted on 2015-09-15 13:19  for_AC  阅读(427)  评论(0编辑  收藏  举报

导航