diff -r ee5959aa4410 -r c280de819a73 src/work/graphdemo.cc --- a/src/work/graphdemo.cc Sun Apr 17 18:57:22 2005 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,137 +0,0 @@ -#include -#include -#include - -using namespace NEGRO; -using namespace std; - -class NodeData; -class EdgeData; - -typedef Graph TestGraph; - -class NodeData -{ -public: - int id; - bool isVis; - bfs_node_data bfs; -}; - -class EdgeData -{ -public: - int id; -}; - -typedef Graph TestGraph; - -int main() -{ - TestGraph G; - TestGraph::NodeIterator n,m; - TestGraph::OutEdgeIterator e; - int i; - - - //for(i=1;i<=10;i++) G.AddNode().n=i; //Ez nagyon rossz!!!!!!!! - for(i=1;i<=10;i++) G.AddNode()->id=i; //Ez a jo!!!!!!!! - - //n=G.AddNode(); - - //for(i=1;i<=10;i++) cout << (G.AddNode()->n=i) << ' '; - //cout << '\n'; - - i=0; - for(G.GetFirst(n);n.Valid();n++) - for(G.GetFirst(m);m.Valid();++m) - if(n!=m) G.AddEdge(n,m)->id=++i; - - cout << "Number of edges: " << i << "\n\n"; - - TestGraph::AllEdgeIterator a; - for(G.GetFirst(a);a.Valid();++a) - cout << a->id << ":" << a.From()->id << "->" << a.To()->id << " "; - - cout << "\n\n\n"; - - for(G.GetFirst(n);n.Valid();++n) - { - cout << n->id << "->"; - for(G.GetFirst(e,n);e.Valid();++e) - cout << e->id << ":" << e.To()->id << ' '; - cout << '\n'; - } - - cout << "\n\n\n\nB-verzio:\n\n\n"; - - G.Clean(); - - for(i=1;i<=10;i++) G.AddNode()->id=i; - - i=0; - for(n=G.First();n.Valid();n++) - for(m=G.First();m.Valid();++m) - if(n!=m) G.AddEdge(n,m)->id=++i; - - ; - for(n=G.First();n.Valid();++n) //Demo - { - e=G.First(n); - while(e.Valid()) - if((e->id)%2) G.Delete(e++); //it may be nice to have a postfix ++ - else ++e; - } - - // cout << "Number of edges: " << i << "\n\n"; - - for(a=G.First();a.Valid();++a) - cout << a->id << ": " << a.From()->id << "->" << a.To()->id << " "; - - cout << "\n\n\n"; - - for(n=G.First();n.Valid();++n) - { - cout << n->id << "->"; - for(e=G.First(n);e.Valid();++e) - cout << e->id << ":" << e.To()->id << ' '; - cout << '\n'; - } - - // For Marci's sake - - { - G.Clean(); - - for(int i=1;i<=10;i++) G.AddNode()->id=i; - - - { //I would'n say I'm really happy with this. - int i=0; - for(TestGraph::NodeIterator n(G);n.Valid();n++) - for(TestGraph::NodeIterator m(G);m.Valid();++m) - if(n!=m) G.AddEdge(n,m)->id=++i; - } - - for(TestGraph::NodeIterator n(G);n.Valid();++n) //Demo - { - TestGraph::OutEdgeIterator e(G,n); - while(e.Valid()) - if((e->id)%2) G.Delete(e++); //it may be nice to have a postfix ++ - else ++e; - } - - for(TestGraph::AllEdgeIterator a(G);a.Valid();++a) - cout << a->id << ": " << a.From()->id << "->" << a.To()->id << " "; - - cout << "\n\n\n"; - - for(TestGraph::NodeIterator n(G);n.Valid();++n) - { - cout << n->id << "->"; - for(TestGraph::OutEdgeIterator e(G,n);e.Valid();++e) - cout << e->id << ":" << e.To()->id << ' '; - cout << '\n'; - } - } -}