Changeset 19:3151a1026db9 in lemon-0.x for src/work/marci_graph_demo.cc
- Timestamp:
- 01/20/04 18:39:13 (20 years ago)
- Branch:
- default
- Phase:
- public
- Convert:
- svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk@32
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/work/marci_graph_demo.cc
r12 r19 4 4 5 5 #include <marci_list_graph.hh> 6 #include <marci_graph_traits.hh>7 6 #include <marci_property_vector.hh> 8 7 #include <marci_bfs.hh> … … 13 12 int main (int, char*[]) 14 13 { 15 typedef graph_traits<list_graph>::node_iterator node_iterator; 16 typedef graph_traits<list_graph>::edge_iterator edge_iterator; 17 typedef graph_traits<list_graph>::each_node_iterator each_node_iterator; 18 typedef graph_traits<list_graph>::each_edge_iterator each_edge_iterator; 19 typedef graph_traits<list_graph>::out_edge_iterator out_edge_iterator; 20 typedef graph_traits<list_graph>::in_edge_iterator in_edge_iterator; 21 typedef graph_traits<list_graph>::sym_edge_iterator sym_edge_iterator; 22 14 typedef list_graph::node_iterator node_iterator; 15 typedef list_graph::edge_iterator edge_iterator; 16 typedef list_graph::each_node_iterator each_node_iterator; 17 typedef list_graph::each_edge_iterator each_edge_iterator; 18 typedef list_graph::out_edge_iterator out_edge_iterator; 19 typedef list_graph::in_edge_iterator in_edge_iterator; 20 typedef list_graph::sym_edge_iterator sym_edge_iterator; 23 21 list_graph G; 24 22 std::vector<node_iterator> vector_of_node_iterators; … … 32 30 std::cout << "number of nodes: " << number_of(G.first_node()) << std::endl; 33 31 34 for(each_node_iterator i=G.first_node(); i. is_valid(); ++i) {32 for(each_node_iterator i=G.first_node(); i.valid(); ++i) { 35 33 std::cout << "node " << G.id(i) << std::endl; 36 34 std::cout << " outdegree (out_edge_iterator): " << number_of(G.first_out_edge(i)) << " "; 37 for(out_edge_iterator j=G.first_out_edge(i); j. is_valid(); ++j) {35 for(out_edge_iterator j=G.first_out_edge(i); j.valid(); ++j) { 38 36 std::cout << "(" << G.id(G.tail(j)) << "--" << G.id(j) << "->" << G.id(G.head(j)) << ") "; 39 37 } … … 41 39 42 40 std::cout<< " "; 43 for(out_edge_iterator j=G.first_out_edge(i); j. is_valid(); ++j) {41 for(out_edge_iterator j=G.first_out_edge(i); j.valid(); ++j) { 44 42 std::cout << G.a_node(j) << "->" << G.b_node(j) << " "; } 45 43 std::cout<<std::endl; 46 44 47 45 std::cout << " indegree: (in_edge_oterator) " << number_of(G.first_in_edge(i)) << " "; 48 for(in_edge_iterator j=G.first_in_edge(i); j. is_valid(); ++j) {46 for(in_edge_iterator j=G.first_in_edge(i); j.valid(); ++j) { 49 47 std::cout << j << " "; } 50 48 std::cout << std::endl; 51 49 52 50 std::cout<< " "; 53 for(in_edge_iterator j=G.first_in_edge(i); j. is_valid(); ++j) {51 for(in_edge_iterator j=G.first_in_edge(i); j.valid(); ++j) { 54 52 std::cout << G.a_node(j) << "->" << G.b_node(j) << " "; } 55 53 std::cout<<std::endl; 56 54 57 55 std::cout << " degree: (sym_edge_iterator) " << number_of(G.first_sym_edge(i)) << " "; 58 for(sym_edge_iterator j=G.first_sym_edge(i); j. is_valid(); ++j) {56 for(sym_edge_iterator j=G.first_sym_edge(i); j.valid(); ++j) { 59 57 std::cout << j << " "; } 60 58 std::cout<<std::endl; 61 59 62 60 std::cout<< " "; 63 for(sym_edge_iterator j=G.first_sym_edge(i); j. is_valid(); ++j) {61 for(sym_edge_iterator j=G.first_sym_edge(i); j.valid(); ++j) { 64 62 std::cout << G.a_node(j) << "->" << G.b_node(j) << " "; } 65 63 std::cout<<std::endl; … … 67 65 68 66 std::cout << "all edges: "; 69 for(each_edge_iterator i=G.first_edge(); i. is_valid(); ++i) {67 for(each_edge_iterator i=G.first_edge(); i.valid(); ++i) { 70 68 std::cout << i << " "; 71 69 } … … 83 81 my_property_vector.put(vector_of_node_iterators[7], 1978); 84 82 std::cout << "some node property values..." << std::endl; 85 for(each_node_iterator i=G.first_node(); i. is_valid(); ++i) {83 for(each_node_iterator i=G.first_node(); i.valid(); ++i) { 86 84 std::cout << my_property_vector.get(i) << std::endl; 87 85 } … … 89 87 int _ii=1; 90 88 edge_property_vector<list_graph, int> my_edge_property(G); 91 for(each_edge_iterator i=G.first_edge(); i. is_valid(); ++i) {89 for(each_edge_iterator i=G.first_edge(); i.valid(); ++i) { 92 90 my_edge_property.put(i, _i); 93 91 _i*=_ii; ++_ii; … … 95 93 96 94 std::cout << "node and edge property values on the tails and heads of edges..." << std::endl; 97 for(each_edge_iterator j=G.first_edge(); j. is_valid(); ++j) {95 for(each_edge_iterator j=G.first_edge(); j.valid(); ++j) { 98 96 std::cout << my_property_vector.get(G.tail(j)) << "--" << my_edge_property.get(j) << "-->" << my_property_vector.get(G.head(j)) << " "; 99 97 } … … 102 100 //std::cout << "the same for inedges of the nodes..." << std::endl; 103 101 //k=0; 104 //for(each_node_iterator i=G.first_node(); i. is_valid(); ++i) {105 // for(in_edge_iterator j=G.first_in_edge(i); j. is_valid(); ++j) {102 //for(each_node_iterator i=G.first_node(); i.valid(); ++i) { 103 // for(in_edge_iterator j=G.first_in_edge(i); j.valid(); ++j) { 106 104 // std::cout << my_property_vector.get(G.tail(j)) << "-->" << my_property_vector.get(G.head(j)) << " "; 107 105 // } … … 113 111 bfs_test.run(); 114 112 std::cout << "reached: "; 115 for(each_node_iterator i=G.first_node(); i. is_valid(); ++i) {113 for(each_node_iterator i=G.first_node(); i.valid(); ++i) { 116 114 std::cout << bfs_test.reached.get(i) << " "; 117 115 } 118 116 std::cout<<std::endl; 119 117 std::cout << "dist: "; 120 for(each_node_iterator i=G.first_node(); i. is_valid(); ++i) {118 for(each_node_iterator i=G.first_node(); i.valid(); ++i) { 121 119 std::cout << bfs_test.dist.get(i) << " "; 122 120 } … … 168 166 std::cout << "on directed graph graph" << std::endl; //<< flow_test; 169 167 std::cout << "names and capacity values" << std::endl; 170 for(each_node_iterator i=flow_test.first_node(); i. is_valid(); ++i) {168 for(each_node_iterator i=flow_test.first_node(); i.valid(); ++i) { 171 169 std::cout << node_name.get(i) << ": "; 172 170 std::cout << "out edges: "; 173 for(out_edge_iterator j=flow_test.first_out_edge(i); j. is_valid(); ++j)171 for(out_edge_iterator j=flow_test.first_out_edge(i); j.valid(); ++j) 174 172 std::cout << node_name.get(flow_test.tail(j)) << "-"<< cap.get(j) << "->" << node_name.get(flow_test.head(j)) << " "; 175 173 std::cout << "in edges: "; 176 for(in_edge_iterator j=flow_test.first_in_edge(i); j. is_valid(); ++j)174 for(in_edge_iterator j=flow_test.first_in_edge(i); j.valid(); ++j) 177 175 std::cout << node_name.get(flow_test.tail(j)) << "-"<< cap.get(j) << "->" << node_name.get(flow_test.head(j)) << " "; 178 176 std::cout << std::endl; … … 180 178 181 179 182 //for(each_node_iterator i=flow_test.first_node(); i. is_valid(); ++i) {180 //for(each_node_iterator i=flow_test.first_node(); i.valid(); ++i) { 183 181 // std::cout << i << " "; 184 182 //}
Note: See TracChangeset
for help on using the changeset viewer.