首页 > 其他 > 详细

图的遍历 DFS和BFS

时间:2015-09-16 01:05:24      阅读:321      评论:0      收藏:0      [点我收藏+]

深度优先搜索 (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

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!