Changeset 185:259540358bbf in lemon0.x for src/work/alpar/smart_graph_demo.cc
 Timestamp:
 03/13/04 23:53:07 (19 years ago)
 Branch:
 default
 Phase:
 public
 Convert:
 svn:c9d7d8f590d60310b91f818b3a526b0e/lemon/trunk@261
 File:

 1 edited
Legend:
 Unmodified
 Added
 Removed

src/work/alpar/smart_graph_demo.cc
r164 r185 7 7 using namespace hugo; 8 8 9 //typedef SmartGraph Graph;10 typedef EmptyGraphGraph;9 typedef SmartGraph Graph; 10 //typedef GraphSkeleton Graph; 11 11 12 12 … … 27 27 28 28 Graph G; 29 NodeIt n; 29 30 { 31 NodeIt n; 30 32 33 for(int i=0;i<10;i++) G.addNode(); 34 for(G.first(n);G.valid(n);G.next(n)) 35 for(NodeIt m(G);m!=INVALID;G.next(m)) 36 if(n!=m) G.addEdge(n,m); 37 38 OutEdgeIt e = safeFirstOut(G,n); 39 OutEdgeIt f = safeFirstOut(G,NodeIt(G)); 40 41 42 InEdgeIt i(INVALID), j; 43 InEdgeIt ii(i); 44 ii=G.first(i,n); 45 ii=G.next(i); 46 47 OutEdgeIt o(INVALID), oo; 48 OutEdgeIt ooo(oo); 49 oo=G.first(o,n); 50 oo=G.next(o); 51 52 EdgeIt ei(INVALID), eie; 53 EdgeIt eiee(ei); 54 eie=G.first(ei); 55 eie=G.next(ei); 56 57 Edge eee(i); 58 eee=o; 59 eee=eie; 60 61 62 bool tm; 63 tm = G.valid(n) && G.valid(i) && G.valid(o) && G.valid(ei); 64 65 std::vector<InEdgeIt> v(10); 66 std::vector<InEdgeIt> w(10,INVALID); 67 68 } 69 70 // Test of maps 31 71 72 G.clear(); 73 32 74 for(int i=0;i<10;i++) G.addNode(); 33 for(G.first(n);G.valid(n);G.next(n)) 34 for(NodeIt m(G);m!=INVALID;G.next(m)) 35 if(n!=m) G.addEdge(n,m); 75 for(NodeIt i(G);G.valid(i);G.next(i)) 76 for(NodeIt j(G);G.valid(j);G.next(j)) 77 if(i<j) G.addEdge(i,j); //The iterators are comparable 78 79 Graph::NodeMap<int> n(G); 80 int count=0; 81 for(NodeIt i(G);G.valid(i);G.next(i)) n[i]=count++; 82 83 Graph::NodeMap<int> nn=n; 84 Graph::NodeMap<double> dd=n; 36 85 37 OutEdgeIt e = safeFirstOut(G,n); 38 OutEdgeIt f = safeFirstOut(G,NodeIt(G)); 86 n = nn; 39 87 88 dd = nn; 89 90 Graph::EdgeMap<int> emap(G); 40 91 41 InEdgeIt i(INVALID), j; 42 InEdgeIt ii(i); 43 ii=G.first(i,n); 44 ii=G.next(i); 92 // Test of SymSmartGraph 45 93 46 OutEdgeIt o(INVALID), oo; 47 OutEdgeIt ooo(oo); 48 oo=G.first(o,n); 49 oo=G.next(o); 94 { 95 typedef SymSmartGraph Graph; 96 typedef Graph::Edge Edge; 97 typedef Graph::InEdgeIt InEdgeIt; 98 typedef Graph::OutEdgeIt OutEdgeIt; 99 typedef Graph::EdgeIt EdgeIt; 100 typedef Graph::Node Node; 101 typedef Graph::NodeIt NodeIt; 102 103 Graph G; 104 105 for(int i=0;i<10;i++) G.addNode(); 106 for(NodeIt i(G);G.valid(i);G.next(i)) 107 for(NodeIt j(G);G.valid(j);G.next(j)) 108 if(i<j) G.addEdge(i,j); //The iterators are comparable 50 109 51 EdgeIt ei(INVALID), eie; 52 EdgeIt eiee(ei); 53 eie=G.first(ei); 54 eie=G.next(ei); 55 56 Edge eee(i); 57 eee=o; 58 eee=eie; 59 60 61 bool tm; 62 tm = G.valid(n) && G.valid(i) && G.valid(o) && G.valid(ei); 63 64 std::vector<InEdgeIt> v(10); 65 std::vector<InEdgeIt> w(10,INVALID); 110 Graph::EdgeMap<int> em(G); 111 Graph::SymEdgeMap<int> sm(G); 112 for(EdgeIt e(G);G.valid(e);G.next(e)) em[e]=G.id(e); 113 for(EdgeIt e(G);G.valid(e);G.next(e)) 114 if(G.tail(e)<G.head(e)) sm[e]=G.id(e); 115 116 for(EdgeIt e(G);G.valid(e);G.next(e)) 117 std::cout << G.id(G.tail(e)) << ">" << G.id(G.head(e)) 118 << ": id=" << G.id(e) << " oppid=" << G.id(G.opposite(e)) 119 << " em=" << em[e] 120 << " sm=" << sm[e] << "\n"; 121 122 } 66 123 67 124 }
Note: See TracChangeset
for help on using the changeset viewer.