COIN-OR::LEMON - Graph Library

source: lemon-0.x/src/work/graphdemo.cc @ 1:207fb3c727cb

Last change on this file since 1:207fb3c727cb was 1:207fb3c727cb, checked in by Alpar Juttner, 20 years ago

src/demo/graph.h: a proposal for a graph implementation
src/demo/graphdemo.cc: a simle demo using graph.h

File size: 1.8 KB
RevLine 
[1]1#include <iostream>
2#include <graph.h>
3
4using namespace NEGRO;
5using namespace std;
6
7class NodeData;
8class EdgeData;
9
10typedef Graph<NodeData,EdgeData> TestGraph;
11
12class NodeData
13{
14public:
15  int id;
16  bool isVis;
17};
18
19class EdgeData
20{
21public:
22  int id;
23};
24
25
26typedef Graph<NodeData,EdgeData> TestGraph;
27
28void main()
29{
30  TestGraph G;
31  TestGraph::NodeIterator n,m,o,p,q;
32  TestGraph::OutEdgeIterator e,f,g,h;
33  int i,j,k;
34
35 
36  //for(i=1;i<=10;i++) G.AddNode().n=i; //Ez nagyon rossz!!!!!!!!
37  for(i=1;i<=10;i++) G.AddNode()->id=i; //Ez a jo!!!!!!!!
38
39  //n=G.AddNode();
40 
41   //for(i=1;i<=10;i++) cout << (G.AddNode()->n=i) << ' ';
42   //cout << '\n';
43 
44  i=0;
45  for(G.GetFirst(n);n.isValid();n++)
46    for(G.GetFirst(m);m.isValid();++m)
47      if(n!=m) G.AddEdge(n,m)->id=++i;
48   
49  cout << "Number of edges: " << i << "\n\n";
50
51  TestGraph::AllEdgeIterator a;
52  for(G.GetFirst(a);a.isValid();++a)
53    cout << a->id << ":" << a.From()->id << "->" << a.To()->id << "   ";
54
55  cout << "\n\n\n";
56 
57  for(G.GetFirst(n);n.isValid();++n)
58    {
59      cout << n->id << "->";
60      for(G.GetFirst(e,n);e.isValid();++e)
61        cout << e->id << ":" << e.To()->id << ' ';
62      cout << '\n';
63    }
64 
65  cout << "\n\n\n\nB-verzio:\n\n\n";
66 
67  G.Clean();
68
69  for(i=1;i<=10;i++) G.AddNode()->id=i;
70 
71  i=0;
72  for(n=G.First();n.isValid();n++)
73    for(m=G.First();m.isValid();++m)
74      if(n!=m) G.AddEdge(n,m)->id=++i;
75   
76  ;
77  for(n=G.First();n.isValid();++n)
78    {
79      e=G.First(n);
80      while(e.isValid())
81        if((e->id)%2) G.Delete(e++);
82        else ++e;
83    }
84 
85  for(a=G.First();a.isValid();++a)
86    cout << a->id << ": " << a.From()->id << "->" << a.To()->id << "   ";
87 
88  cout << "\n\n\n";
89 
90  for(n=G.First();n.isValid();++n)
91    {
92      cout << n->id << "->";
93      for(e=G.First(n);e.isValid();++e)
94        cout << e->id << ":" << e.To()->id << ' ';
95      cout << '\n';
96    }
97 
98}
Note: See TracBrowser for help on using the repository browser.