public V[] getAllValues() { List <V> r = new List <V>(); r.Add(value); r.AddRange(left == null ? new V[0] : left.getAllValues()); r.AddRange(right == null ? new V[0] : right.getAllValues()); return(r.ToArray()); }
//// Simple 'drawing' routines //private string drawNode (TTreeNode<T>node) { // if (node == null) // return "empty"; // if ((node.left == null) && (node.right == null)) // return node.value.ToString(); // if ((node.left != null) && (node.right == null)) // return node.value + "(" + drawNode(node.left) + ", _)"; // if ((node.right != null) && (node.left == null)) // return node.value + "(_, " + drawNode(node.right) + ")"; // return node.value + "(" + drawNode(node.left) + ", " + drawNode(node.right) + ")"; //} ///// <summary> ///// Return the tree depicted as a simple string, useful for debugging, eg ///// 50(40(30(20, 35), 45(44, 46)), 60) ///// </summary> ///// <returns>Returns the tree</returns> //public string drawTree() { // return drawNode (root); //} public V[] getAllValues() { if (root == null) { return(new V[0]); } return(root.getAllValues()); }