private static bool PostOrder( ITraversing node, Visitor visitor, ICollection <ITraversing> visited) { TraversingHelper.CheckCircularity(visited, node); if (node == null || visitor == null) { return(true); } node.Traverse(child => PostOrder(child, visitor, visited)); return(visitor(node)); }
public static void Traverse(this ITraversing node, Visitor visitor) { node.Traverse(TraversingAxis.Child, visitor); }