concept exercises

advertisement
CONCEPT EXERCISES
10.1 a.
Show the effect of making the following insertions into an
initially empty binary search tree:
30, 40, 20, 90, 10, 50, 70, 60, 80
30
20
40
10
90
50
70
60
b.
80
Find a different ordering of the above elements whose insertions
would generate the same binary search tree as in part a.
30, 20, 40, 10, 90, 50, 70, 80, 60
10.2 Describe in English how to remove each of the following from a binary
search tree:
a.
an element with no children
Simply remove the element and remove the corresponding
subtree-link from the element’s parent (if the element is not the
root).
b.
an element with one child
Replace the parent-element link and the element-child link with
a parent-child link.
c.
an element with two children
Copy the element’s immediate successor into element, and then
remove that immediate successor (by part a or part b).
10.3 a.
For any positive integer n, describe how to arrange the integers
1, 2, …, n so that when they are inserted into a BinarySearchTree
object, the height of the tree will be linear in n.
Arrange the elements in increasing order, for example (or in
decreasing order).
b.
For any positive integer n, describe how to arrange the integers
1, 2, …, n so that when they are inserted into a BinarySearchTree
object, the height of the tree will be logarithmic in n.
The first element should be n / 2. Then half of the remaining
elements will be in the left subtree, and half in the right subtree.
The next element in the arrangement can be n / 4. Then half of
the remaining elements in the left subtree of the whole tree will
be in the left subtree of n / 4. The next element in the
arrangement can be 3n / 4. The arrangement is
n / 2, n / 4, 3n / 4, n / 8, 3n / 8, 5n / 8, 7n / 8, n / 16, 3n / 16, …
c.
For any positive integer n, describe how to arrange the integers 1,
2, …, n so that when they are inserted into an AVLTree object,
the height of the tree will be logarithmic in n.
Any arrangement will do, because the height of an AVL tree is
always logarithmic in n.
d.
For any positive integer n, is it possible to arrange the integers 1,
2, …, n so that when they are inserted into an AVLTree object,
the height of the tree will be linear in n? Explain.
No, because the height of an AVL tree is always logarithmic in
n.
10.4 In each of the following binary search trees, perform a left rotation
around 50.
a.
50
60
70
60
50
b.
70
30
20
50
40
80
70
100
30
20
80
50
40
c.
100
70
30
20
50
40
80
45 70
60
100
75
30
20
80
50
40
100
70
45 60 75
10.5
In each of the following binary search trees, perform a right rotation
around 50.
a.
50
40
30
40
30
50
b.
60
50
70
40
30
55
45
60
40
70
30
50
45
c.
55
30
20
50
40
80
48 60
100
55 75
30
20
40
50
48
80
60
100
55 75
10.6 In the following binary search tree, perform a double rotation (a left
rotation around 20 and then a right rotation around 50) to reduce the
height to 2.
50
20
10
90
40
30
(after the left rotation around 20)
50
40
90
20
10
30
(after the right rotation around 50)
40
20
10
50
30
90
10.7 In the following binary search tree, perform a "double rotation" to
reduce the height to 2:
50
20
80
70
100
60
(after the right rotation around 80)
50
20
70
60
80
100
(after the left rotation around 50)
70
50
20
80
60
100
10.9 Suppose we define maxh to be the maximum number of elements in an
AVL tree of height h.
a. Calculate max3.
The maximum number of elements will be attained for a full AVL
tree. By the Binary Tree Theorem, max3 = 2 * 23 – 1 = 15.
b. Determine the formula for maxh for any h >= 0. Hint: Use the
Binary Tree Theorem from Chapter 9.
maxh = 2h+1 – 1
c. What is the maximum height of an AVL tree with 100 elements?
Since min9 = fib (12) – 1 = 143, the maximum height of an AVL
tree with 100 elements must be less than 9. Since min 8 = fib (11) –
1 = 88, the maximum height of an AVL tree with 100 elements is
8.
10.10 Show that the height of an AVL tree with 32 elements must be exactly
5. Hint: calculate max4 and min6.
Since max4 = 31, the maximum number of elements in any AVL tree
of height 4 is 31. Since min6 = fib (9) – 1 = 33, the minimum number
of elements in an AVL tree of height 6 is 33. So any AVL tree with
32 elements must have height 5.
Download