8 class InEdgeIt : public EdgeIt
9 class OutEdgeIt : public EdgeIt {};
10 class SymEdgeIt : public EdgeIt {};
11 class EachEdgeIt : public EdgeIt {};
15 NodeIt &getFirst(NodeIt &) const;
16 InEdgeIt &getFirst(InEdgeIt &,const NodeIt) const;
17 OutEdgeIt &getFirst(OutEdgeIt &,const NodeIt) const;
18 SymEdgeIt &getFirst(SymEdgeIt &,const NodeIt) const;
19 EachEdgeIt &getFirst(EachEdgeIt &) const;
21 NodeIt next(const NodeIt) const;
22 InEdgeIt next(const InEdgeIt) const;
23 OutEdgeIt next(const OutEdgeIt) const;
24 SymEdgeIt next(const SymEdgeIt) const;
25 EachEdgeIt next(const EachEdgeIt) const;
27 NodeIt &goNext(NodeIt &) const;
28 InEdgeIt &goNext(InEdgeIt &) const;
29 OutEdgeIt &goNext(OutEdgeIt &) const;
30 SymEdgeIt &goNext(SymEdgeIt &) const;
31 EachEdgeIt &goNext(EachEdgeIt &) const;
33 NodeIt head(const EdgeIt) const;
34 NodeIt tail(const EdgeIt) const;
36 NodeIt aNode(const InEdgeIt) const;
37 NodeIt aNode(const OutEdgeIt) const;
38 NodeIt aNode(const SymEdgeIt) const;
40 NodeIt bNode(const InEdgeIt) const;
41 NodeIt bNode(const OutEdgeIt) const;
42 NodeIt bNode(const SymEdgeIt) const;
44 bool valid(const NodeIt) const;
45 bool valid(const EdgeIt) const;
47 void setInvalid(NodeIt &) const;
48 void setInvalid(EdgeIt &) const;
51 EdgeIt addEdge(const NodeIt from,const NodeIt to);
53 void delete(NodeIt n);
54 void delete(EdgeIt e);
58 template<class T> class NodeMap
62 void set(const NodeIt i, const T &t);
63 T get(const NodeIt i) const;
64 T &operator[](const NodeIt i);
66 NodeMap(const Graph &G);
69 template<class T> class EdgeMap
73 void set(const EdgeIt i, const T &t);
74 T get(const EdgeIt i) const;
75 T &operator[](const EdgeIt i);
77 EdgeMap(const Graph &G);