removeEdge method

  1. @override
bool removeEdge(
  1. Edge<E> edge
)
override

Removes an edge from the graph.

If the edge was removed, the graph must:

  • Remove the edge from the graph so that containsEdge returns false;
  • Remove target as a successor of source in successors;
  • If source has no more successors, return false for containsRoot;

In addition, the graph may, depending on the implementation:

  • Remove source and target from the graph if they have no more edges;
  • Remove the inverse edge, i.e. for undirected graphs.

Implementation

@override
bool removeEdge(Edge<E> edge) {
  final a = super.removeEdge(edge);
  final b = super.removeEdge(edge.reversed);
  assert(a == b, 'Inconsistent undirected edges');
  return a;
}