| bubu ( |
// orientēts grafa tips
typedef adjacency_list<vecS, vecS, directedS, std::string, int> Graph;
// virsotnes un šķautnes tips
typedef Graph::vertex_descriptor Node;
typedef Graph::edge_descriptor Edge;
Graph graph;
Node root = add_vertex(graph);
graph[root] = "root_dati";
Node i = root;
while (whatever)
{
// iterē pa visiem i kaimiņiem
BOOST_FOREACH(Edge edge, out_edges(i, graph))
{
Node j = target(edge, graph);
// kautko dari virsotnei j
// ...
}
Node new_node = add_vertex(graph);
graph[new_node] = "jaunas nodes dati";
Edge e = add_edge(i, new_node, graph).first; // pieliek šķautni no i uz new_node
graph[e] = 666; // var protams neko nelikt šķautnes datos un tos tipā vispār nenorādīt, ja nevajag
}Nopūsties: