public static UnbalancedBinaryTree <T> Insert(T value, UnbalancedBinaryTree <T> tree) { if (tree.IsEmpty) { return(new UnbalancedBinaryTree <T>(Empty, value, Empty)); } else { int compareResult = Comparer <T> .Default.Compare(value, tree.Value); if (compareResult < 0) { return(new UnbalancedBinaryTree <T>( Insert(value, tree.Left), tree.Value, tree.Right)); } else if (compareResult > 0) { return(new UnbalancedBinaryTree <T>( tree.Left, tree.Value, Insert(value, tree.Right))); } else { return(tree); } } }
public static bool Contains(T value, UnbalancedBinaryTree <T> tree) { if (tree.IsEmpty) { return(false); } else { int compareResult = Comparer <T> .Default.Compare(value, tree.Value); if (compareResult < 0) { return(Contains(value, tree.Left)); } else if (compareResult > 0) { return(Contains(value, tree.Right)); } else { return(true); } } }
public bool Contains(T value) { return(UnbalancedBinaryTree <T> .Contains(value, this)); }
public UnbalancedBinaryTree(UnbalancedBinaryTree <T> left, T value, UnbalancedBinaryTree <T> right) { this.left = left; this.right = right; this.value = value; }
public UnbalancedBinaryTree <T> Insert(T value) { return(UnbalancedBinaryTree <T> .Insert(value, this)); }