41 |
41 |
42 //for(i=1;i<=10;i++) cout << (G.AddNode()->n=i) << ' '; |
42 //for(i=1;i<=10;i++) cout << (G.AddNode()->n=i) << ' '; |
43 //cout << '\n'; |
43 //cout << '\n'; |
44 |
44 |
45 i=0; |
45 i=0; |
46 for(G.GetFirst(n);n.isValid();n++) |
46 for(G.GetFirst(n);n.Valid();n++) |
47 for(G.GetFirst(m);m.isValid();++m) |
47 for(G.GetFirst(m);m.Valid();++m) |
48 if(n!=m) G.AddEdge(n,m)->id=++i; |
48 if(n!=m) G.AddEdge(n,m)->id=++i; |
49 |
49 |
50 cout << "Number of edges: " << i << "\n\n"; |
50 cout << "Number of edges: " << i << "\n\n"; |
51 |
51 |
52 TestGraph::AllEdgeIterator a; |
52 TestGraph::AllEdgeIterator a; |
53 for(G.GetFirst(a);a.isValid();++a) |
53 for(G.GetFirst(a);a.Valid();++a) |
54 cout << a->id << ":" << a.From()->id << "->" << a.To()->id << " "; |
54 cout << a->id << ":" << a.From()->id << "->" << a.To()->id << " "; |
55 |
55 |
56 cout << "\n\n\n"; |
56 cout << "\n\n\n"; |
57 |
57 |
58 for(G.GetFirst(n);n.isValid();++n) |
58 for(G.GetFirst(n);n.Valid();++n) |
59 { |
59 { |
60 cout << n->id << "->"; |
60 cout << n->id << "->"; |
61 for(G.GetFirst(e,n);e.isValid();++e) |
61 for(G.GetFirst(e,n);e.Valid();++e) |
62 cout << e->id << ":" << e.To()->id << ' '; |
62 cout << e->id << ":" << e.To()->id << ' '; |
63 cout << '\n'; |
63 cout << '\n'; |
64 } |
64 } |
65 |
65 |
66 cout << "\n\n\n\nB-verzio:\n\n\n"; |
66 cout << "\n\n\n\nB-verzio:\n\n\n"; |
68 G.Clean(); |
68 G.Clean(); |
69 |
69 |
70 for(i=1;i<=10;i++) G.AddNode()->id=i; |
70 for(i=1;i<=10;i++) G.AddNode()->id=i; |
71 |
71 |
72 i=0; |
72 i=0; |
73 for(n=G.First();n.isValid();n++) |
73 for(n=G.First();n.Valid();n++) |
74 for(m=G.First();m.isValid();++m) |
74 for(m=G.First();m.Valid();++m) |
75 if(n!=m) G.AddEdge(n,m)->id=++i; |
75 if(n!=m) G.AddEdge(n,m)->id=++i; |
76 |
76 |
77 ; |
77 ; |
78 for(n=G.First();n.isValid();++n) //Demo |
78 for(n=G.First();n.Valid();++n) //Demo |
79 { |
79 { |
80 e=G.First(n); |
80 e=G.First(n); |
81 while(e.isValid()) |
81 while(e.Valid()) |
82 if((e->id)%2) G.Delete(e++); //it may be nice to have a postfix ++ |
82 if((e->id)%2) G.Delete(e++); //it may be nice to have a postfix ++ |
83 else ++e; |
83 else ++e; |
84 } |
84 } |
85 |
85 |
86 // cout << "Number of edges: " << i << "\n\n"; |
86 // cout << "Number of edges: " << i << "\n\n"; |
87 |
87 |
88 for(a=G.First();a.isValid();++a) |
88 for(a=G.First();a.Valid();++a) |
89 cout << a->id << ": " << a.From()->id << "->" << a.To()->id << " "; |
89 cout << a->id << ": " << a.From()->id << "->" << a.To()->id << " "; |
90 |
90 |
91 cout << "\n\n\n"; |
91 cout << "\n\n\n"; |
92 |
92 |
93 for(n=G.First();n.isValid();++n) |
93 for(n=G.First();n.Valid();++n) |
94 { |
94 { |
95 cout << n->id << "->"; |
95 cout << n->id << "->"; |
96 for(e=G.First(n);e.isValid();++e) |
96 for(e=G.First(n);e.Valid();++e) |
97 cout << e->id << ":" << e.To()->id << ' '; |
97 cout << e->id << ":" << e.To()->id << ' '; |
98 cout << '\n'; |
98 cout << '\n'; |
99 } |
99 } |
100 |
100 |
101 // For Marci's sake |
101 // For Marci's sake |
105 |
105 |
106 for(int i=1;i<=10;i++) G.AddNode()->id=i; |
106 for(int i=1;i<=10;i++) G.AddNode()->id=i; |
107 |
107 |
108 |
108 |
109 { //I would'n say I'm really happy with this. |
109 { //I would'n say I'm really happy with this. |
110 int i; |
110 int i=0; |
111 for(TestGraph::NodeIterator n(G);n.isValid();n++) |
111 for(TestGraph::NodeIterator n(G);n.Valid();n++) |
112 for(TestGraph::NodeIterator m(G);m.isValid();++m) |
112 for(TestGraph::NodeIterator m(G);m.Valid();++m) |
113 if(n!=m) G.AddEdge(n,m)->id=++i; |
113 if(n!=m) G.AddEdge(n,m)->id=++i; |
114 } |
114 } |
115 |
115 |
116 for(TestGraph::NodeIterator n(G);n.isValid();++n) //Demo |
116 for(TestGraph::NodeIterator n(G);n.Valid();++n) //Demo |
117 { |
117 { |
118 TestGraph::OutEdgeIterator e(G,n); |
118 TestGraph::OutEdgeIterator e(G,n); |
119 while(e.isValid()) |
119 while(e.Valid()) |
120 if((e->id)%2) G.Delete(e++); //it may be nice to have a postfix ++ |
120 if((e->id)%2) G.Delete(e++); //it may be nice to have a postfix ++ |
121 else ++e; |
121 else ++e; |
122 } |
122 } |
123 |
123 |
124 for(TestGraph::AllEdgeIterator a(G);a.isValid();++a) |
124 for(TestGraph::AllEdgeIterator a(G);a.Valid();++a) |
125 cout << a->id << ": " << a.From()->id << "->" << a.To()->id << " "; |
125 cout << a->id << ": " << a.From()->id << "->" << a.To()->id << " "; |
126 |
126 |
127 cout << "\n\n\n"; |
127 cout << "\n\n\n"; |
128 |
128 |
129 for(TestGraph::NodeIterator n(G);n.isValid();++n) |
129 for(TestGraph::NodeIterator n(G);n.Valid();++n) |
130 { |
130 { |
131 cout << n->id << "->"; |
131 cout << n->id << "->"; |
132 for(TestGraph::OutEdgeIterator e(G,n);e.isValid();++e) |
132 for(TestGraph::OutEdgeIterator e(G,n);e.Valid();++e) |
133 cout << e->id << ":" << e.To()->id << ' '; |
133 cout << e->id << ":" << e.To()->id << ' '; |
134 cout << '\n'; |
134 cout << '\n'; |
135 } |
135 } |
136 } |
136 } |
137 } |
137 } |