Plan to throw one (implementation) away; you will, anyhow. Fred Brooks
Write a program to find Predecessor and Successor of the given node in the Binary Search Tree
If the node has two children, its predecessor is the maximum value in its left subtree and its successor the minimum value in its right subtree. If it does not have a left child, a node's predecessor is its first left ancestor.
All Binary Tree Values: 4 8 10 12 14 20 22 Predecessor of 14 is 12 Successor of 14 is 20