码迷,mamicode.com
首页 > 其他好文 > 详细

图的遍历 DFS和BFS

时间:2015-09-16 01:07:28      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:dfs   bfs

深度优先搜索 (Depth First Search, DFS):


void DFS ( Vertex V )

    { visited[ V ] = true;

      for ( V 点 的每个邻接点 W )

           if ( !visited[ W ] )

                DFS( W );

    }


若有N 个顶点、E 条边,时间复杂度是

  1. 用邻接表存储图,有O(N+E)

  2. 用邻接矩阵存储图,有O(N 2 )



广度优先搜索 (Breadth First Search, BFS)


void BFS ( Vertex V )

    { visited[V] = true;

        Enqueue(V, Q);

        while(!IsEmpty(Q)){

        V = Dequeue(Q);

        for ( V 点 的每个邻接点 W )

            if ( !visited[W] ) {

                visited[W] = true;

                Enqueue(W, Q);

            }

        }

    }


若有N 个顶点、E 条边,时间复杂度是

  1. 用邻接表存储图,有O(N+E)

  2. 用邻接矩阵存储图,有O(N 2 )




图的遍历 DFS和BFS

标签:dfs   bfs

原文地址:http://zhenzhuangde.blog.51cto.com/10697385/1695098

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!