src/work/alpar/emptygraph.h
author alpar
Tue, 02 Mar 2004 15:45:27 +0000
changeset 145 07c32a103bbb
parent 67 5f86199dcf3e
child 147 f3f1d7a4a8d3
permissions -rw-r--r--
next() -> getNext()
goNext() -> next()
     1 // -*-mode: c++; -*-
     2 
     3 class EmptyGraph
     4 {
     5 public:
     6 
     7   class EdgeIt {};
     8   
     9   class InEdgeIt : public EdgeIt {};
    10   class OutEdgeIt : public EdgeIt {};
    11   class SymEdgeIt : public EdgeIt {};
    12   class EachEdgeIt : public EdgeIt {};
    13 
    14   class NodeIt {};
    15     
    16   NodeIt &getFirst(NodeIt &) const {}
    17   InEdgeIt &getFirst(InEdgeIt &, NodeIt) const {}
    18   OutEdgeIt &getFirst(OutEdgeIt &, NodeIt) const {}
    19   SymEdgeIt &getFirst(SymEdgeIt &, NodeIt) const {}
    20   EachEdgeIt &getFirst(EachEdgeIt &) const {}
    21 
    22   NodeIt getNext(NodeIt) const {}
    23   InEdgeIt getNext(InEdgeIt) const {}
    24   OutEdgeIt getNext(OutEdgeIt) const {}
    25   SymEdgeIt getNext(SymEdgeIt) const {}
    26   EachEdgeIt getNext(EachEdgeIt) const {}
    27 
    28   NodeIt &next(NodeIt &) const {}
    29   InEdgeIt &next(InEdgeIt &) const {}
    30   OutEdgeIt &next(OutEdgeIt &) const {}
    31   SymEdgeIt &next(SymEdgeIt &) const {}
    32   EachEdgeIt &next(EachEdgeIt &) const {}
    33 
    34   NodeIt head(EdgeIt) const {}
    35   NodeIt tail(EdgeIt) const {}
    36   
    37   NodeIt aNode(InEdgeIt) const {}
    38   NodeIt aNode(OutEdgeIt) const {}
    39   NodeIt aNode(SymEdgeIt) const {}
    40 
    41   NodeIt bNode(InEdgeIt) const {}
    42   NodeIt bNode(OutEdgeIt) const {}
    43   NodeIt bNode(SymEdgeIt) const {}
    44 
    45   //bool valid(const NodeIt) const {};
    46   //bool valid(const EdgeIt) const {};
    47 
    48   //void setInvalid(NodeIt &) const {};
    49   //void setInvalid(EdgeIt &) const {};
    50   
    51   NodeIt addNode() {}
    52   EdgeIt addEdge(NodeIt tail, NodeIt head) {}
    53     
    54   void erase(NodeIt n) {}
    55   void erase(EdgeIt e) {}
    56 
    57   void clear() {}
    58 
    59   template<class T> class NodeMap
    60   {
    61   public:
    62     typedef T ValueType;
    63     typedef NodeIt KeyType;
    64     void set(NodeIt i, T t) {}
    65     T get(NodeIt i) const {}
    66     T &operator[](NodeIt i) {}
    67       
    68     NodeMap(const Graph &G) {}
    69     NodeMap(const Graph &G, T t) {}
    70   };
    71 
    72   template<class T> class EdgeMap
    73   {
    74   public:
    75     typedef T ValueType;
    76     typedef EdgeIt KeyType;
    77     void set(EdgeIt i, T t) {}
    78     T get(EdgeIt i) const {}
    79     T &operator[](EdgeIt i) {}
    80       
    81     EdgeMap(const Graph &G) {}
    82     EdgeMap(const Graph &G, T t) {}
    83   };
    84 };
    85 
    86 class EmptyBipGraph : public EmptyGraph
    87 {
    88   class ANodeIt {};
    89   class BNodeIt {};
    90 
    91   ANodeIt &next(ANodeIt &) {}
    92   BNodeIt &next(BNodeIt &) {}
    93 
    94   ANodeIt &getFirst(ANodeIt &) const {}
    95   BNodeIt &getFirst(BNodeIt &) const {}
    96 
    97   enum NodeClass { A = 0, B = 1 };
    98   NodeClass getClass(NodeIt n) {}
    99 
   100 }