当前位置:  开发笔记 > 编程语言 > 正文

如何创建C++ Boost无向图并以深度优先搜索(DFS)顺序遍历它?

如何解决《如何创建C++Boost无向图并以深度优先搜索(DFS)顺序遍历它?》经验,为你挑选了1个好方法。

如何创建C++ Boost无向图并以深度优先搜索(DFS)顺序遍历它?



1> Ashwin Nanja..:
// Boost DFS example on an undirected graph.
// Create a sample graph, traverse its nodes
// in DFS order and print out their values.

#include 
#include 
#include 
using namespace std;

typedef boost::adjacency_list MyGraph;
typedef boost::graph_traits::vertex_descriptor MyVertex;

class MyVisitor : public boost::default_dfs_visitor
{
public:
  void discover_vertex(MyVertex v, const MyGraph& g) const
  {
    cerr << v << endl;
    return;
  }
};

int main()
{
  MyGraph g;
  boost::add_edge(0, 1, g);
  boost::add_edge(0, 2, g);
  boost::add_edge(1, 2, g);
  boost::add_edge(1, 3, g);

  MyVisitor vis;
  boost::depth_first_search(g, boost::visitor(vis));

  return 0;
}


boost :: depth_first_search(g,vertex(1,g),boost :: visitor(vis));
如果要将顶点1视为根,该怎么办?
推荐阅读
跟我搞对象吧
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有