Data Structures and Algorithms
with Object-Oriented Design Patterns in C++
-
For each of the following key sequences
determine the binary heap obtained when the keys
are inserted one-by-one in the order given
into an initially empty heap:
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
- 3, 1, 4, 1, 5, 9, 2, 6, 5, 4.
- 2, 7, 1, 8, 2, 8, 1, 8, 2, 8.
-
For each of the binary heaps
obtained in Exercise
determine the heap obtained after three consecutive
DequeueMin operations.
-
Repeat Exercises and for a leftist heap.
-
Show the result obtained by inserting the keys
one-by-one in the order given
into an initially empty binomial queue.
-
A full binary tree is a tree in which each node
is either a leaf or its is a full node
(see Exercise ).
Consider a complete binary tree with n nodes.
-
For what values of n is a complete binary tree
a full binary tree.
-
For what values of n is a complete binary
a perfect binary tree.
-
Prove by induction Theorem .
-
Devise an algorithm to determine whether a given binary tree is a heap.
What is the running time of your algorithm?
-
Devise an algorithm to find the largest item
in a binary min heap.
Hint: First, show that the largest item
must be in one of the leaves.
What is the running time of your algorithm?
-
Suppose we are given an arbitrary array of n keys
to be inserted into a binary heap all at once.
Devise an O(n) algorithm to do this.
Hint: See Section .
-
Devise an algorithm to determine whether a given binary tree
is a leftist tree.
What is the running time of your algorithm?
-
Prove that a complete binary tree is a leftist tree.
-
Suppose we are given an arbitrary array of n keys
to be inserted into a leftist heap all at once.
Devise an O(n) algorithm to do this.
Hint: See Exercises and .
-
Consider a complete binary tree
with its nodes numbered as shown in Figure .
Let K be the number of a node in the tree.
The the binary representation of K is
where .
-
Show that path from the root to a given node K
passes passes through the following nodes:
-
Consider a complete binary tree with n nodes.
The nodes on the path from the root to the
are special.
Show that every non-special node
is the root of a perfect tree.
-
The Enqueue algorithm for the BinaryHeap class
does object comparisons in the worst case.
In effect, this algorithm does a linear search from a leaf
to the root to find the point at which to insert a new key.
Devise an algorithm that a binary search instead.
Show that the number of comparisons required becomes .
Hint: See Exercise .
-
Prove Theorem .
-
Do Exercise .
Copyright © 1997 by Bruno R. Preiss, P.Eng. All rights reserved.