ps4sol - Introduction to Algorithms Massachusetts Institute...

Info iconThis preview shows pages 1–3. Sign up to view the full content.

View Full Document Right Arrow Icon
Introduction to Algorithms October 29, 2005 Massachusetts Institute of Technology 6.046J/18.410J Professors Erik D. Demaine and Charles E. Leiserson Handout 18 Problem Set 4 Solutions Problem 4-1. Treaps If we insert a set of n items into a binary search tree using T REE -I NSERT , the resulting tree may be horribly unbalanced. As we saw in class, however, we expect randomly built binary search trees to be balanced. (Precisely, a randomly built binary search tree has expected height O (lg n ) .) Therefore, if we want to build an expected balanced tree for a fixed set of items, we could randomly permute the items and then insert them in that order into the tree. What if we do not have all the items at once? If we receive the items one at a time, can we still randomly build a binary search tree out of them? We will examine a data structure that answers this question in the affirmative. A treap is a binary search tree with a modified way of ordering the nodes. Figure 1 shows an example of a treap. As usual, each item x in the tree has a key key [ x ] . In addition, we assign priority [ x ] , which is a random number chosen independently for each x . We assume that all priorities are distinct and also that all keys are distinct. The nodes of the treap are ordered so that (1) the keys obey the binary-search-tree property and (2) the priorities obey the min-heap order property. In other words, if v is a left child of u , then key [ v ] < key [ u ] ; if v is a right child of u , then key [ v ] > key [ u ] ; and if v is a child of u , then priority ( v ) > priority ( u ) . (This combination of properties is why the tree is called a “treap”: it has features of both a binary search tree and a heap.) 73 I: G: B: H: E: 7 K: 5 65 23 4 A: 10 Figure 1 : A treap. Each node x is labeled with key [ x ]: priority [ x ] . For example, the root has key G and priority 4. It helps to think of treaps in the following way. Suppose that we insert nodes x 1 ,x 2 ,...,x n , each with an associated key, into a treap in arbitrary order. Then the resulting treap is the tree that would
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
2 Handout 18: Problem Set 4 Solutions have been formed if the nodes had been inserted into a normal binary search tree in the order given by their (randomly chosen) priorities. In other words, priority [ x i ] < priority [ x j ] means that x i is effectively inserted before x j . (a) Given a set of nodes x 1 ,x 2 ,...,x n with keys and priorities all distinct, show that there is a unique treap with these nodes. Solution: Prove by induction on the number of nodes in the tree. The base case is a tree with zero nodes, which is trivially unique. Assume for induction that treaps with k 1 or fewer nodes are unique. We prove that a treap with k nodes is unique. In this treap, the item x with minimum priority must be at the root. The left subtree has items with keys < key [ x ] and the right subtree has items with keys > key [ x ] . This uniquely defines the root and both subtrees of the root. Each subtree is a treap of size k 1 , so they are unique by induction.
Background image of page 2
Image of page 3
This is the end of the preview. Sign up to access the rest of the document.

{[ snackBarMessage ]}

Page1 / 11

ps4sol - Introduction to Algorithms Massachusetts Institute...

This preview shows document pages 1 - 3. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online