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