author | marci |
Thu, 18 Nov 2004 14:37:22 +0000 | |
changeset 1007 | a7d5fe18d8f9 |
parent 921 | 818510fa3d99 |
child 1008 | 3fef334f5f37 |
permissions | -rw-r--r-- |
marci@915 | 1 |
#include <iostream> |
marci@915 | 2 |
|
alpar@921 | 3 |
#include <lemon/list_graph.h> |
alpar@921 | 4 |
#include <lemon/smart_graph.h> |
marci@915 | 5 |
#include <merge_node_graph_wrapper.h> |
marci@915 | 6 |
|
marci@915 | 7 |
using std::cout; |
marci@915 | 8 |
using std::endl; |
marci@915 | 9 |
|
alpar@921 | 10 |
using namespace lemon; |
marci@915 | 11 |
|
marci@1007 | 12 |
class Graph3 : ListGraph { |
marci@1007 | 13 |
public: |
marci@1007 | 14 |
class Node : public ListGraph::Node { }; |
marci@1007 | 15 |
class Edge { }; |
marci@1007 | 16 |
}; |
marci@1007 | 17 |
|
marci@915 | 18 |
int main() { |
marci@917 | 19 |
typedef SmartGraph Graph1; |
marci@917 | 20 |
typedef ListGraph Graph2; |
marci@917 | 21 |
Graph1 g; |
marci@917 | 22 |
Graph2 h; |
marci@917 | 23 |
typedef MergeNodeGraphWrapper<Graph1, Graph2> GW; |
marci@915 | 24 |
GW gw(g, h); |
marci@917 | 25 |
Graph1::Node n1=g.addNode(); |
marci@917 | 26 |
Graph1::Node n2=g.addNode(); |
marci@917 | 27 |
Graph1::Node n3=g.addNode(); |
marci@917 | 28 |
Graph2::Node n4=h.addNode(); |
marci@917 | 29 |
Graph2::Node n5=h.addNode(); |
marci@915 | 30 |
//GW::NodeIt n(gw) |
marci@915 | 31 |
for (GW::NodeIt n(gw); n!=INVALID; ++n) { |
marci@915 | 32 |
cout << gw.id(n) << endl; |
marci@915 | 33 |
} |
marci@917 | 34 |
|
marci@917 | 35 |
GW::NodeMap<int> nm(gw); |
marci@917 | 36 |
int i=0; |
marci@917 | 37 |
for (GW::NodeIt n(gw); n!=INVALID; ++n) { |
marci@917 | 38 |
++i; |
marci@917 | 39 |
nm.set(n, i); |
marci@917 | 40 |
} |
marci@917 | 41 |
for (Graph1::NodeIt n(g); n!=INVALID; ++n) { |
marci@917 | 42 |
cout << nm[n] << endl; |
marci@917 | 43 |
} |
marci@917 | 44 |
for (Graph2::NodeIt n(h); n!=INVALID; ++n) { |
marci@917 | 45 |
cout << nm[n] << endl; |
marci@917 | 46 |
} |
marci@1007 | 47 |
|
marci@1007 | 48 |
gw.print(); |
marci@1007 | 49 |
|
marci@1007 | 50 |
{ |
marci@1007 | 51 |
// typedef SmartGraph Graph1; |
marci@1007 | 52 |
typedef ListGraph Graph1; |
marci@1007 | 53 |
typedef ListGraph Graph2; |
marci@1007 | 54 |
Graph1 g; |
marci@1007 | 55 |
Graph2 h; |
marci@1007 | 56 |
typedef MergeNodeGraphWrapper<Graph1, Graph2> GW; |
marci@1007 | 57 |
GW gw(g, h); |
marci@1007 | 58 |
gw.print(); |
marci@1007 | 59 |
} |
marci@1007 | 60 |
{ |
marci@1007 | 61 |
// typedef SmartGraph Graph1; |
marci@1007 | 62 |
typedef Graph3 Graph1; |
marci@1007 | 63 |
typedef ListGraph Graph2; |
marci@1007 | 64 |
Graph1 g; |
marci@1007 | 65 |
Graph2 h; |
marci@1007 | 66 |
typedef MergeNodeGraphWrapper<Graph1, Graph2> GW; |
marci@1007 | 67 |
GW gw(g, h); |
marci@1007 | 68 |
gw.print(); |
marci@1007 | 69 |
} |
marci@1007 | 70 |
{ |
marci@1007 | 71 |
// typedef SmartGraph Graph1; |
marci@1007 | 72 |
typedef ListGraph Graph1; |
marci@1007 | 73 |
typedef Graph3 Graph2; |
marci@1007 | 74 |
Graph1 g; |
marci@1007 | 75 |
Graph2 h; |
marci@1007 | 76 |
typedef MergeNodeGraphWrapper<Graph1, Graph2> GW; |
marci@1007 | 77 |
GW gw(g, h); |
marci@1007 | 78 |
gw.print(); |
marci@1007 | 79 |
} |
marci@915 | 80 |
} |