public static List <T> ToList <T>(this AvlTree <T> tree, TraversalDelegate <T> traversalmethod) { var list = new List <T>(tree.Count); tree.Map(traversalmethod, x => list.Add(x)); return(list); }
public static List <T> ToList <T>(this BinaryTree <T> tree, TraversalDelegate <T> traversalmethod) { var list = new List <T>(); traversalmethod(tree, list); return(list); }
public void TraversalTree(TraversalDelegate action) { if (root == null) { return; } RecursiveTraversalTree(root, action); }
void RecursiveTraversalTree(Node node, TraversalDelegate action) { if (action(node)) { foreach (var child in node.children) { RecursiveTraversalTree(child, action); } } }
void RecursiveTraversalTree(Node node, TraversalDelegate action) { if (action(node)) { foreach (var child in node.children) { RecursiveTraversalTree(child, action); } } }
void PostOrderTraverse(TrieTier cur_node, TraversalDelegate func, object[] p) { // Visit all subtrees, then perform the function on the current node for (int i = 0; i < cur_node.Tiers.Length; i++) { if (cur_node.Tiers[i] != null) { PostOrderTraverse(cur_node.Tiers[i], func, p); } } func(cur_node, p); }
void RecursiveTraversalTree(Node node, TraversalDelegate action) { if (action(node)) { if (node.left != null) { RecursiveTraversalTree(node.left, action); } if (node.right != null) { RecursiveTraversalTree(node.right, action); } } }
public static void Map <T>(this AvlTree <T> tree, TraversalDelegate <T> traversalmethod, CollectDelegate <T> collect) { traversalmethod(tree.root, collect); }
void RecursiveTraversalTree(Node node, TraversalDelegate action) { if (action(node)) { if (node.left != null) RecursiveTraversalTree(node.left, action); if (node.right != null) RecursiveTraversalTree(node.right, action); } }
public void TraversalTree(TraversalDelegate action) { if (root == null) return; RecursiveTraversalTree(root, action); }
void PostOrderTraverse(TraversalDelegate func, object[] p) { PostOrderTraverse(base_tier, func, p); }