/// <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); } }
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); }