Answers to Self-Study Questions

Test Yourself #1

Question 1

    (1)               (2)             (3)               (4)

     A                10              cat               15
    / \              /               /   \             /  \
   B   C            5              bat   rat          5    22
                   /              /                    \     \
                 -3             ant                     20    30
Tree 1 is not a BST because B is greater than A, yet B is in the left subtree of the node with key A (all keys in a node's left subtree should have keys that are less than the key in that node).
Tree 4 is not a BST because 20 is greater than 15, yet 20 is in the left subtree of the node with key 15.

Question 2

Test Yourself #2

The BST that results from inserting the values 5 3 7 6 2 1 4 in that order is:

           5
         /   \
        3     7
       / \   /
      2   4 6
     /
    1

The BST that results from inserting the values 1 2 3 4 5 6 7 in that order is:

       1
        \
         2
          \
           3
            \
             4
              \
               5
                \
                 6
                  \
                   7

The BST that results from inserting the values 4 3 5 2 6 1 7 in that order is:

           4
          / \
         3   5
        /     \
       2       6
      /         \
     1           7

Test Yourself #3

private static BinaryTreenode smallestNode(BinaryTreenode T)
// precondition: T is not null
// postcondition: return the node in the subtree rooted at T that
//                has the smallest value
{
    if (T.getLeft() == null) 
        return T;
    else return 
        smallestNode(T.getLeft());
}