src/work/alpar/emptygraph.h
changeset 149 824c0438020c
parent 145 07c32a103bbb
child 157 ee17030e5f47
equal deleted inserted replaced
9:3f1d99e05054 10:18fdaa0afb1a
     2 
     2 
     3 class EmptyGraph
     3 class EmptyGraph
     4 {
     4 {
     5 public:
     5 public:
     6 
     6 
     7   class EdgeIt {};
     7   class NodeIt {
       
     8   public:
       
     9     NodeIt() {}   //FIXME
       
    10     //NodeIt(const NodeIt &) {} 
       
    11     bool operator==(NodeIt n) const {} //FIXME
       
    12     bool operator!=(NodeIt n) const {} //FIXME
       
    13   };
       
    14     
       
    15   class EachNodeIt : public NodeIt {
       
    16   public:
       
    17     EachNodeIt() {} //FIXME
       
    18     EachNodeIt(const EmptyGraph &) const {}
       
    19     EachNodeIt(const EachNodeIt &) const {} //FIXME
       
    20   };
       
    21     
       
    22   class EdgeIt {
       
    23     EdgeIt() {}   //FIXME
       
    24     //EdgeIt(const EdgeIt &) {} 
       
    25     bool operator==(EdgeIt n) const {} //FIXME
       
    26     bool operator!=(EdgeIt n) const {} //FIXME    
       
    27   };
     8   
    28   
     9   class InEdgeIt : public EdgeIt {};
    29   class OutEdgeIt : public EdgeIt {
    10   class OutEdgeIt : public EdgeIt {};
    30     OutEdgeIt() {}
    11   class SymEdgeIt : public EdgeIt {};
    31     OutEdgeIt(const EmptyGraph &, NodeIt) {}
    12   class EachEdgeIt : public EdgeIt {};
    32   };
    13 
    33 
    14   class NodeIt {};
    34   class InEdgeIt : public EdgeIt {
    15     
    35     InEdgeIt() {}
    16   NodeIt &getFirst(NodeIt &) const {}
    36     InEdgeIt(const EmptyGraph &, NodeIt) {}    
       
    37   };
       
    38   //  class SymEdgeIt : public EdgeIt {};
       
    39   class EachEdgeIt : public EdgeIt {
       
    40     EachEdgeIt() {}
       
    41     EachEdgeIt(const EmptyGraph &, NodeIt) {}
       
    42   };
       
    43 
       
    44   EachNodeIt &getFirst(EachNodeIt &) const {}
    17   InEdgeIt &getFirst(InEdgeIt &, NodeIt) const {}
    45   InEdgeIt &getFirst(InEdgeIt &, NodeIt) const {}
    18   OutEdgeIt &getFirst(OutEdgeIt &, NodeIt) const {}
    46   OutEdgeIt &getFirst(OutEdgeIt &, NodeIt) const {}
    19   SymEdgeIt &getFirst(SymEdgeIt &, NodeIt) const {}
    47   //  SymEdgeIt &getFirst(SymEdgeIt &, NodeIt) const {}
    20   EachEdgeIt &getFirst(EachEdgeIt &) const {}
    48   EachEdgeIt &getFirst(EachEdgeIt &) const {}
    21 
    49 
    22   NodeIt getNext(NodeIt) const {}
    50   NodeIt getNext(NodeIt) const {}
    23   InEdgeIt getNext(InEdgeIt) const {}
    51   InEdgeIt getNext(InEdgeIt) const {}
    24   OutEdgeIt getNext(OutEdgeIt) const {}
    52   OutEdgeIt getNext(OutEdgeIt) const {}
    25   SymEdgeIt getNext(SymEdgeIt) const {}
    53   //SymEdgeIt getNext(SymEdgeIt) const {}
    26   EachEdgeIt getNext(EachEdgeIt) const {}
    54   EachEdgeIt getNext(EachEdgeIt) const {}
    27 
    55 
    28   NodeIt &next(NodeIt &) const {}
    56   NodeIt &next(NodeIt &) const {}
    29   InEdgeIt &next(InEdgeIt &) const {}
    57   InEdgeIt &next(InEdgeIt &) const {}
    30   OutEdgeIt &next(OutEdgeIt &) const {}
    58   OutEdgeIt &next(OutEdgeIt &) const {}
    31   SymEdgeIt &next(SymEdgeIt &) const {}
    59   //SymEdgeIt &next(SymEdgeIt &) const {}
    32   EachEdgeIt &next(EachEdgeIt &) const {}
    60   EachEdgeIt &next(EachEdgeIt &) const {}
    33 
    61 
    34   NodeIt head(EdgeIt) const {}
    62   NodeIt head(EdgeIt) const {}
    35   NodeIt tail(EdgeIt) const {}
    63   NodeIt tail(EdgeIt) const {}
    36   
    64   
    37   NodeIt aNode(InEdgeIt) const {}
    65 //   NodeIt aNode(InEdgeIt) const {}
    38   NodeIt aNode(OutEdgeIt) const {}
    66 //   NodeIt aNode(OutEdgeIt) const {}
    39   NodeIt aNode(SymEdgeIt) const {}
    67 //   NodeIt aNode(SymEdgeIt) const {}
    40 
    68 
    41   NodeIt bNode(InEdgeIt) const {}
    69 //   NodeIt bNode(InEdgeIt) const {}
    42   NodeIt bNode(OutEdgeIt) const {}
    70 //   NodeIt bNode(OutEdgeIt) const {}
    43   NodeIt bNode(SymEdgeIt) const {}
    71 //   NodeIt bNode(SymEdgeIt) const {}
    44 
    72 
    45   //bool valid(const NodeIt) const {};
    73   bool valid(const NodeIt) const {};
    46   //bool valid(const EdgeIt) const {};
    74   bool valid(const EdgeIt) const {};
       
    75 
       
    76   int id(const NodeIt) const {};
       
    77   int id(const EdgeIt) const {};
    47 
    78 
    48   //void setInvalid(NodeIt &) const {};
    79   //void setInvalid(NodeIt &) const {};
    49   //void setInvalid(EdgeIt &) const {};
    80   //void setInvalid(EdgeIt &) const {};
    50   
    81   
    51   NodeIt addNode() {}
    82   NodeIt addNode() {}
    54   void erase(NodeIt n) {}
    85   void erase(NodeIt n) {}
    55   void erase(EdgeIt e) {}
    86   void erase(EdgeIt e) {}
    56 
    87 
    57   void clear() {}
    88   void clear() {}
    58 
    89 
       
    90   int nodeNum() {}
       
    91   int edgeNum() {}
       
    92 
    59   template<class T> class NodeMap
    93   template<class T> class NodeMap
    60   {
    94   {
    61   public:
    95   public:
    62     typedef T ValueType;
    96     typedef T ValueType;
    63     typedef NodeIt KeyType;
    97     typedef NodeIt KeyType;
    64     void set(NodeIt i, T t) {}
    98 
    65     T get(NodeIt i) const {}
       
    66     T &operator[](NodeIt i) {}
       
    67       
       
    68     NodeMap(const Graph &G) {}
    99     NodeMap(const Graph &G) {}
    69     NodeMap(const Graph &G, T t) {}
   100     NodeMap(const Graph &G, T t) {}
       
   101 
       
   102     void set(NodeIt i, T t) {}
       
   103     T get(NodeIt i) const {}  //FIXME: Is it necessary
       
   104     T &operator[](NodeIt i) {}
       
   105     const T &operator[](NodeIt i) const {}
       
   106 
       
   107     update() {}
       
   108     update(T a) {}   //FIXME: Is it necessary
    70   };
   109   };
    71 
   110 
    72   template<class T> class EdgeMap
   111   template<class T> class EdgeMap
    73   {
   112   {
    74   public:
   113   public:
    75     typedef T ValueType;
   114     typedef T ValueType;
    76     typedef EdgeIt KeyType;
   115     typedef EdgeIt KeyType;
       
   116 
       
   117     EdgeMap(const Graph &G) {}
       
   118     EdgeMap(const Graph &G, T t) {}
       
   119     
    77     void set(EdgeIt i, T t) {}
   120     void set(EdgeIt i, T t) {}
    78     T get(EdgeIt i) const {}
   121     T get(EdgeIt i) const {}
    79     T &operator[](EdgeIt i) {}
   122     T &operator[](EdgeIt i) {}
    80       
   123     
    81     EdgeMap(const Graph &G) {}
   124     update() {}
    82     EdgeMap(const Graph &G, T t) {}
   125     update(T a) {}   //FIXME: Is it necessary
    83   };
   126   };
    84 };
   127 };
    85 
   128 
    86 class EmptyBipGraph : public EmptyGraph
       
    87 {
       
    88   class ANodeIt {};
       
    89   class BNodeIt {};
       
    90 
   129 
    91   ANodeIt &next(ANodeIt &) {}
   130 // class EmptyBipGraph : public EmptyGraph
    92   BNodeIt &next(BNodeIt &) {}
   131 // {
       
   132 //   class ANodeIt {};
       
   133 //   class BNodeIt {};
    93 
   134 
    94   ANodeIt &getFirst(ANodeIt &) const {}
   135 //   ANodeIt &next(ANodeIt &) {}
    95   BNodeIt &getFirst(BNodeIt &) const {}
   136 //   BNodeIt &next(BNodeIt &) {}
    96 
   137 
    97   enum NodeClass { A = 0, B = 1 };
   138 //   ANodeIt &getFirst(ANodeIt &) const {}
    98   NodeClass getClass(NodeIt n) {}
   139 //   BNodeIt &getFirst(BNodeIt &) const {}
    99 
   140 
   100 }
   141 //   enum NodeClass { A = 0, B = 1 };
       
   142 //   NodeClass getClass(NodeIt n) {}
       
   143 
       
   144 // }