public void TraversePreorder(VisitNodeFunct2 visitNode, TraversalType type, bool delayVisit = false) { var visited = new Hashtable(); bool traverse = true; Traverse((TNode c, TraversalListIDS <TNode> k) => { if (type == TraversalType.DepthFirst || !visited.ContainsKey(c)) { if (delayVisit) { Delay(); } traverse = visitNode(c, k); if (type == TraversalType.BreadthFirst) { visited.Add(c, (c.Level) * (c.ChildIndex + 1)); } foreach (TNode child in c.Children) { k.Add(child); } } return(traverse); }, type); }
public void Traverse(VisitNodeFunct2 visitNode, TraversalType type) { var ids = new TraversalListIDS <TNode>(type); ids.Add(Root); while (ids.Count > 0 && visitNode(ids.Take(), ids) == true) { ; } }
public void TraversePreorder(VisitNodeFunct2 visitNode, TraversalType type, bool delayVisit = false) { var visited = new Hashtable(); bool traverse = true; Traverse((TNode c, TraversalListIDS<TNode> k) => { if (type == TraversalType.DepthFirst || !visited.ContainsKey(c)) { if (delayVisit) Delay(); traverse = visitNode(c, k); if (type == TraversalType.BreadthFirst) visited.Add(c, (c.Level) * (c.ChildIndex + 1)); foreach (TNode child in c.Children) { k.Add(child); } } return traverse; }, type); }
public void Traverse(VisitNodeFunct2 visitNode, TraversalType type) { var ids = new TraversalListIDS<TNode>(type); ids.Add(Root); while (ids.Count > 0 && visitNode(ids.Take(), ids) == true) ; }