Problems BINARY TREES Fig. 22 2. Consider the binary tree T in

advertisement
Problems
BINARY TREES
Fig. 22
2. Consider the binary tree T in Fig. 22(b) (a)
Find the depth d of T .
(b) Traverse T using the preorder algorithm.
(c) Traverse T using the inorder algorithm.
(d) Traverse T using the postorder algorithm.
(e) Find the terminal nodes of T, and the order they are traversed in (b), (c), and (d ).
(a) The depth d is the number of nodes in a longest branch of T ; hence d = 4.
(b) The preorder traversal of T is a recursive NLR algorithm, that is, it first processes a node N , then its left subtree L,
and finally its right subtree R. Letting [A1 , . . . , Ak ] denote a subtree with nodes A1 , . . . , Ak , the tree T is traversed
as follows:
F −[A, K, C][D, H , G, B, E]
or, finally,
or
F −A−[K, C]−D −[H ][G, B, E]
F −A−K −C −D −H −G−B −E
(c) The inorder traversal of T is a recursive LNR algorithm, that is, it first processes a left subtree L, then its node N,
and finally its right subtree R. Thus T is traversed as follows:
[A, K, C]−F −[D, H , G, B, E] or
or finally,
A−[K, C]−F −[H ]−D −[G, B, E]
A−K −C −F −H −D −B −G−E
(d) The postorder traversal of T is a recursive LRN algorithm, that is, it first processes a left subtree L, then its right
subtree R, and finally its node N. Thus T is traversed as follows:
[A, K, C][D, H , G, B, E]−F
or, finally,
or
[K, C]−A−[H ][G, B, E]−D −F
C −K −A−H −B −E −G−D −F
(e) The terminal nodes are the nodes without children. They are traversed in the same order in all three traversal
algorithms: C, H, B, E.
4. Consider the trees T1 , T2 , T3 in Fig. 24. Identify those which represent the same: (a)
rooted tree; (b) ordered rooted tree; (c) binary tree.
(a) They all represent the same rooted tree, that is, A is the root with children (immediate successors) B and C, and
C has the single child D.
(b) Here T1 and T2 are the same ordered rooted tree but T3 is different. Specifically, B is the first child of A in T1
and
T2 but the second child of A in T3 .
(c) They all represent different binary trees. Specifically, T1 and T2 are different since we distinguish between
left and right successors even when there is only one successor (which is not true for ordered rooted trees). That
is, D is a left successor of C in T1 but a right successor of C in T2 .
Fig. 24
5. A binary tree T has nine nodes. Draw a picture of T if the preorder and inorder traversal of T yield the
following sequences of nodes:
Preorder : G
Inorder :
Q
B
B
Q
C
A
A
C
G
P
P
D
E
E
D
R
R
The tree T is drawn from its root R downward as follows.
(a) The root of T is obtained by choosing the first node in its preorder. Thus G is the root of T.
(b) The left child of node G is obtained as follows. First use the inorder of T to find the nodes in the left subtree T1
of G. Thus T1 consists of the nodes Q, B, C, A, which are to the left of G in the inorder of T. Then the left child
of G is obtained by choosing the first node (root) in the preorder of T1 which appears in the preorder of T. Thus
B is the left child of G.
(c) Similarly, the right subtree T2 of G consists of the nodes P , E, D, R; and P is the root of T2 , that is, P is the right
child of G.
Repeating the above process with each new node, we finally obtain the required tree T in Fig. 25(a).
6. Consider the algebraic expression E = (2x + y)(5a − b)3 .
(a) Draw the corresponding 2-tree. (b) Use T to write E in Polish prefix form.
(a) Use an arrow (↑) for exponentiation, an asterisk (*) for multiplication, and a slash (/) for division to obtain the
tree in Fig. 25(b).
Fig. 25
(b) Scan the tree from the left as in Fig. 4(b) to obtain
∗+∗ 2 x y ↑− ∗ 5 a b 3
7. Draw all possible nonsimilar: (a) binary trees T with three nodes; (b) 2-trees T with four external nodes.
(a) There are five such trees T, which are pictured in Fig. 26(a).
(b) Each 2-tree T with four external nodes is determined by a binary tree T with three nodes, that is, by a tree T in
part (a). Thus there are five such 2-trees T which are pictured in Fig. 26(b).
Fig. 26
BINARY SEARCH TREES, HEAPS
8. Consider the binary tree T in Fig. 22(a).
(a) Why is T a binary search tree?
(b) Suppose ITEM = 33 is added to the tree. Find the new tree T .
(a) T is a binary, search tree since each node N is greater than the values in its left subtree and less than the values
in its right subtree.
(b) Compare ITEM = 33 with the root, 60. Since 33 < 60, move to the left child, 30. Since 33 > 30, move to the
right child, 55. Since 33 < 55, move to the left child, 35. Now 33 < 35, but 35 has no left child.
Hence add ITEM = 33 as a left child of the node 35 to give the tree in Fig. 27(a). The shaded edges indicate
the path down through the tree during the insertion.
Fig. 27
9. Suppose n data items A1 , A2 , . . . , AN are already sorted, i.e., A1 < A2 < · · · < AN .
(a) If the items are inserted in order into an empty binary tree T, describe the final tree T.
(b) What is the depth d of the final tree T.
(c) Compare d with the average depth d ∗ of a binary tree with n nodes for (i) n = 50; (ii) n = 100;
(iii) n = 500.
(a) The tree T will consist of one branch which extends to the right as pictured in Fig. 27(b) (b)
The branch of T has n nodes; hence d = n.
(c) It is known that d ∗ = c log2 n, where c ≈ 1.4. Hence: (i) d(50) = 50, d ∗ (50) ≈ 9;
(ii) d(100) = 100, d ∗ (100) ≈ 10; (iii) d(500) = 500, d ∗ (500) ≈ 12.
Suppose the following list of letters is inserted into an empty binary search tree:
J,
R,
D,
G,
W,
E,
M,
H,
P,
(a) Find the final tree T. (b) Find the inorder traversal of T.
(a) Insert the nodes one after the other to obtain the tree T in Fig. 28(a)
Fig. 28
A,
F,
Q
(b) The inorder traversal of T follows:
A,
D,
E,
F,
G,
H,
J,
M,
P,
Q,
R,
W
Observe that this is the alphabetical listing of the letters. (The inorder traversal of any binary search tree T yields
a sorted list of the nodes.)
11. Consider the binary tree T in Fig. 28(a). Describe the tree T after: (a) the node M and (b) the node D
are deleted.
(a) The node M has only one child, P. Hence delete M and let P become the left child of R in place of M.
(b) The node D has two children. Find the inorder successor of D, which is the node E. First delete E from the tree,
and then replace D by the node E.
Fig. 28(b) shows the updated tree T .
12. Let H be the minheap in Fig. 29(a). (H is a minheap since the smaller elements are on top of the heap, rather
than the larger elements.) Describe the heap after ITEM = 11 is inserted into H.
Fig. 29
First insert ITEM as the next node in the complete tree, that is, as the left child of node 44. Then repeatedly
compare ITEM with its PARENT, and interchange ITEM and PARENT as long as ITEM < PARENT. Since 11 < 44,
interchange 11 and 44. Since 11 < 22, interchange 11 and 22. Since 11 > 8, ITEM = 11 has found its appropriate
place in the heap H. Figure 29(b) shows the final heap H. The shaded edges indicate the path of ITEM as it moves
up the tree.
GENERAL TREES
16. Let T be the general tree in Fig. 32(a). Find the corresponding binary tree T .
The nodes of T will be the same as the nodes of the general tree T . In particular, the root of T will be the same
as the root of T . Furthermore, if N is a node in the binary tree T , then its left child is the first child of N in T and its
right child is the next sibling of N in T . Constructing T from the root down we obtain the tree in Fig. 32(b).
Fig. 32
Supplementary Problems
17. Consider the binary tree T in Fig. 33(a).
(a) Find: (i) depth d of T ; (ii) descendants of B .
(b) Traverse T in:
(i) preorder; (ii) inorder; (iii) postorder.
(c) Find the terminal nodes of T and the orders they are traversed in (b).
18. Repeat Problem 17 for the binary tree T in Fig. 33(b).
19. Repeat Problem 17 for the binary tree T in Fig. 33(c).
Fig. 33
21. Suppose the preorder and inorder traversals of a binary tree T yield the following sequences of nodes:
Preorder :
Inorder :
G,
Q,
B, Q,
B, K,
A,
C,
C,
F,
(a) Draw the diagram of T .
(b) Find:
(i) depth d of T ;
(ii) descendants of B .
(c) List the terminal nodes of T .
K,
A,
F, P ,
G, P ,
D,
E,
E, R,
D, H ,
H
R
22. Consider the algebraic expression E = (x + 3y)4 (a − 2b). (a) Draw the corresonding 2-tree. (b) Write E in Polish
prefix form.
BINARY SEARCH TREES, HEAPS
23. Find the final tree T if the following numbers are inserted into an empty binary search tree T :
50,
33,
44,
22,
77,
35,
60,
40
24. Find the final heap H if the numbers in Problem 23 are inserted into an empty maxheap H.
25. Find the final heap H if the numbers in Problem 23 are inserted into an empty minheap H.
26. Let T be the binary search tree in Fig. 35(a). Suppose nodes 20, 55, 88 are added one after the other to T . Find the final
tree T .
27. Let T be the binary search tree in Fig. 35(a). Suppose nodes 22, 25, 75 are deleted one after the other from T . Find the
final tree T .
Fig. 35
28. Let H be the heap in Fig. 35(b). Find the final heap H if the numbers 65, 44, and 75 are inserted one after the other into
H.
29. Let H be the heap in Fig. 35(b). Find the final heap H if the root and then the next root are deleted from H.
Download