BaseGraph.lightEdgeIterator(...) methods added to support edge
iterators with O(1) construction time. MatrixGraph still returns heavy
iterators. Lightweight edge iterators are implemented in ListGraph but
not yet tested.
Lightweight iterators should throw exceptions if the graph is changed
during lightweight iteration (right now, they don't). This is not a
limitation for normal (heavy) iterators because they represent the
iterator-construction-time state of the graph, even if the graph is
changed after construction of the iterator.
|