CSE 2320 Section 060/061 Spring 1999
Due: April 8, 1999, in class (April 9, 1999, 5:00pm for -10%)
- Show the Red-Black trees that result after each successive insertion
of the keys 23, 85, 26, 24, 6, 30, 51, 94, 69, 73 (in this order) into an
initially empty Red-Black tree.
- Show the Red-Black trees that result after each successive deletion
of the keys 10, 8, 7, 4, 2, 3, 11, 12, 5, 1, 9, 6 (in this order) from the
following Red-Black tree.
- Show the B-trees that result after each successive insertion of the
22 keys A - V (in alphabetical order) into an initially empty B-tree with
minimum degree t = 3.
- Show the B-trees that result after each successive deletion of the
keys Q, B, P, G, L, J, N, O, F, H, Y, K, I, R, E (in this order) from
the following B-tree with minimum degree t = 2. When you have a choice
between a left or right sibling, always choose the left sibling. Always
try Case 2a (predecessor) before Case 2b (successor).
- Consider the problem of constructing an optimal binary search tree
(in terms of search time) for a set of integer keys, given the frequencies
with which each key will be accessed. Assume there are n keys with
values 1 to n, and key i has frequency fi such that
The goal is to minimize the value of
where di is the depth of key i in the binary
- Let c(i,j) be the optimal cost of a binary search tree containing
Assuming the optimal choice for the root of this
tree is key k, give an expression for c(i,j) in terms of c(i,k-1) and
- Show that this problem exhibits optimal substructure.
- Define a recursive solution for computing c(i,j) and write
pseudocode for a divide-and-conquer algorithm implementing your solution.
- Give a recurrence T(n) for the running time of your recursive
solution in part c, where n=j-i+1, and show that
- Show that the recursive solution has overlapping subproblems and
compute the number of unique subproblems in terms of n.
- Write pseudocode for a O(n3) bottom-up, dynamic programming
solution to the optimal binary search tree problem. Justify the O(n3)running time of your solution. Note that your solution must keep track of
the root keys for each subtree and must include a procedure for actually
constructing the tree.