//整理 by RobinKin from DevonIT.inc
#include <boost/config.hpp>
#include <iostream>
#include <vector>
#include <string>
#include <boost/graph/adjacency_list.hpp>
#include <boost/graph/depth_first_search.hpp>
#include <boost/graph/breadth_first_search.hpp>
#include <boost/property_map.hpp>
#include <boost/graph/graph_utility.hpp> // for boost::make_list
/*
Example of using a visitor with the depth first search
and breadth first search algorithm
Sacramento ---- Reno ---- Salt Lake City
|
San Francisco
|
San Jose ---- Fresno
|
Los Angeles ---- Los Vegas ---- Pheonix
|
San Diego
The visitor has three main functions:
discover_vertex(u,g) is invoked when the algorithm first arrives at the
vertex u. This will happen in the depth first or breadth first
order depending on which algorithm you use.
examine_edge(e,g) is invoked when the algorithm first checks an edge to see
whether it has already been there. Whether using BFS or DFS, all
the edges of vertex u are examined immediately after the call to
visit(u).
finish_vertex(u,g) is called when after all
C++ Boost graph 深度(广度)优先算法示例
最新推荐文章于 2025-09-11 13:09:16 发布
本文提供了一个使用C++ Boost库进行深度优先搜索(DFS)和广度优先搜索(BFS)的示例。通过邻接列表创建了一个城市之间的图,并定义了三个访问者函数:city_arrival、neighbor_cities和finish_city,分别在发现新节点、检查边和完成节点遍历时触发,以打印相关信息。

最低0.47元/天 解锁文章
495





