Ejemplo n.º 1
0
        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);
                }
            }
        }
Ejemplo n.º 2
0
        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);
                }
            }
        }
Ejemplo n.º 3
0
 public bool Contains(T value)
 {
     return(UnbalancedBinaryTree <T> .Contains(value, this));
 }
Ejemplo n.º 4
0
 public UnbalancedBinaryTree(UnbalancedBinaryTree <T> left, T value, UnbalancedBinaryTree <T> right)
 {
     this.left  = left;
     this.right = right;
     this.value = value;
 }
Ejemplo n.º 5
0
 public UnbalancedBinaryTree <T> Insert(T value)
 {
     return(UnbalancedBinaryTree <T> .Insert(value, this));
 }