Пример #1
0
        /// <summary>
        /// Deletes a specified value from the tree
        /// </summary>
        /// <param name="item"></param>
        ///
        public Node Find(MobileObject key)
        {
            bool isFound = false;
            Node temp    = root;
            Node item    = null;

            while (!isFound)
            {
                if (temp == null)
                {
                    break;
                }
                if (key.CompareTo(temp.value) == -1)
                {
                    temp = temp.left;
                }
                if (key.CompareTo(temp.value) == 1)
                {
                    temp = temp.right;
                }
                if (key.CompareTo(temp.value) == 0)
                {
                    isFound = true;
                    item    = temp;
                }
            }
            if (isFound)
            {
                Console.WriteLine("{0} was found", key);
                return(temp);
            }
            else
            {
                Console.WriteLine("{0} not found", key);
                return(null);
            }
        }
Пример #2
0
        public Node insert(Node root, MobileObject v)
        {
            if (root == null)
            {
                root       = new Node();
                root.value = v;
            }
            else if (v.CompareTo(root.value) == -1)
            {
                root.left = insert(root.left, v);
                root      = balance_tree(root);
            }
            else
            {
                root.right = insert(root.right, v);
                root       = balance_tree(root);
            }

            return(root);
        }