src/work/alpar/emptygraph.h
author alpar
Fri, 20 Feb 2004 21:59:34 +0000
changeset 107 8d62f0072ff0
parent 62 aa1700f78754
child 145 07c32a103bbb
permissions -rw-r--r--
marci -> hugo
resize -> update
alpar@52
     1
// -*-mode: c++; -*-
alpar@52
     2
alpar@52
     3
class Graph
alpar@52
     4
{
alpar@52
     5
public:
alpar@52
     6
  class EdgeIt {};
alpar@52
     7
  
marci@67
     8
  class InEdgeIt : public EdgeIt {};
alpar@52
     9
  class OutEdgeIt : public EdgeIt {};
alpar@52
    10
  class SymEdgeIt : public EdgeIt {};
alpar@52
    11
  class EachEdgeIt : public EdgeIt {};
alpar@52
    12
alpar@52
    13
  class NodeIt {};
alpar@52
    14
    
marci@67
    15
  NodeIt &getFirst(NodeIt &) const {}
marci@67
    16
  InEdgeIt &getFirst(InEdgeIt &, NodeIt) const {}
marci@67
    17
  OutEdgeIt &getFirst(OutEdgeIt &, NodeIt) const {}
marci@67
    18
  SymEdgeIt &getFirst(SymEdgeIt &, NodeIt) const {}
marci@67
    19
  EachEdgeIt &getFirst(EachEdgeIt &) const {}
alpar@52
    20
marci@67
    21
  NodeIt next(NodeIt) const {}
marci@67
    22
  InEdgeIt next(InEdgeIt) const {}
marci@67
    23
  OutEdgeIt next(OutEdgeIt) const {}
marci@67
    24
  SymEdgeIt next(SymEdgeIt) const {}
marci@67
    25
  EachEdgeIt next(EachEdgeIt) const {}
alpar@52
    26
marci@67
    27
  NodeIt &goNext(NodeIt &) const {}
marci@67
    28
  InEdgeIt &goNext(InEdgeIt &) const {}
marci@67
    29
  OutEdgeIt &goNext(OutEdgeIt &) const {}
marci@67
    30
  SymEdgeIt &goNext(SymEdgeIt &) const {}
marci@67
    31
  EachEdgeIt &goNext(EachEdgeIt &) const {}
alpar@52
    32
marci@67
    33
  NodeIt head(EdgeIt) const {}
marci@67
    34
  NodeIt tail(EdgeIt) const {}
alpar@55
    35
  
marci@67
    36
  NodeIt aNode(InEdgeIt) const {}
marci@67
    37
  NodeIt aNode(OutEdgeIt) const {}
marci@67
    38
  NodeIt aNode(SymEdgeIt) const {}
alpar@52
    39
marci@67
    40
  NodeIt bNode(InEdgeIt) const {}
marci@67
    41
  NodeIt bNode(OutEdgeIt) const {}
marci@67
    42
  NodeIt bNode(SymEdgeIt) const {}
alpar@55
    43
marci@67
    44
  //bool valid(const NodeIt) const {};
marci@67
    45
  //bool valid(const EdgeIt) const {};
alpar@55
    46
marci@67
    47
  //void setInvalid(NodeIt &) const {};
marci@67
    48
  //void setInvalid(EdgeIt &) const {};
alpar@52
    49
  
marci@67
    50
  NodeIt addNode() {}
marci@67
    51
  EdgeIt addEdge(NodeIt tail, NodeIt head) {}
alpar@52
    52
    
marci@67
    53
  void erase(NodeIt n) {}
marci@67
    54
  void erase(EdgeIt e) {}
alpar@52
    55
marci@67
    56
  void clear() {}
alpar@52
    57
alpar@52
    58
  template<class T> class NodeMap
alpar@52
    59
  {
alpar@52
    60
  public:
alpar@61
    61
    typedef T ValueType;
alpar@61
    62
    typedef NodeIt KeyType;
marci@67
    63
    void set(NodeIt i, T t) {}
marci@67
    64
    T get(NodeIt i) const {}
marci@67
    65
    T &operator[](NodeIt i) {}
alpar@52
    66
      
marci@67
    67
    NodeMap(const Graph &G) {}
marci@67
    68
    NodeMap(const Graph &G, T t) {}
alpar@52
    69
  };
alpar@52
    70
alpar@52
    71
  template<class T> class EdgeMap
alpar@52
    72
  {
alpar@52
    73
  public:
alpar@61
    74
    typedef T ValueType;
alpar@61
    75
    typedef EdgeIt KeyType;
marci@67
    76
    void set(EdgeIt i, T t) {}
marci@67
    77
    T get(EdgeIt i) const {}
marci@67
    78
    T &operator[](EdgeIt i) {}
alpar@52
    79
      
marci@67
    80
    EdgeMap(const Graph &G) {}
marci@67
    81
    EdgeMap(const Graph &G, T t) {}
alpar@52
    82
  };
alpar@52
    83
};