protected override void ProcessEdgeNotTaken(ITreeEdge <FC> edge) { ITreeNode <FC> predecessor = (ITreeNode <FC>)edge.Predecessor; ITreeNode <FC> successor = (ITreeNode <FC>)edge.Successor; edge.EdgeClass = predecessor.SpanningTreeIndex < successor.SpanningTreeIndex ? IsAncestor(predecessor, successor) ? EdgeClass.ForwardEdge : EdgeClass.CrossEdge : IsAncestor(successor, predecessor) ? EdgeClass.BackEdge : EdgeClass.CrossEdge; }
protected virtual void ProcessEdgeNotTaken(ITreeEdge <FC> edge) { }
protected virtual void ProcessEdgeAfter(ITreeEdge <FC> edge) { }
//--// protected virtual void ProcessEdgeBefore(ITreeEdge <FC> edge) { }
//--// protected override void ProcessEdgeBefore(ITreeEdge <FC> edge) { edge.EdgeClass = EdgeClass.TreeEdge; }