rec04 - 6.006 Intro to Algorithms Recitation 04 February...

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

View Full Document Right Arrow Icon

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

View Full DocumentRight Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: 6.006 Intro to Algorithms Recitation 04 February 11, 2011 AVL Trees Recall the operations (e.g. find , insert , delete ) of a binary search tree. The runtime of these operations were all O ( h ) where h represents the height of the tree, defined as the length of the longest branch. In the worst case, all the nodes of a tree could be on the same branch. In this case, h = n , so the runtime of these binary search tree operations are O ( n ) . However, we can maintain a much better upper bound on the height of the tree if we make efforts to balance the tree and even out the length of all branches. AVL trees are binary search trees that balances itself every time an element is inserted or deleted. Each node of an AVL tree has the property that the heights of the sub-tree rooted at its children differ by at most one. Upper Bound of AVL Tree Height We can show that an AVL tree with n nodes has O (log n ) height. Let N h represent the minimum number of nodes that can form an AVL tree of height h . If we know N h- 1 and N h- 2 , we can determine N h . Since this N h-noded tree must have a height h , the root must have a child that has height h- 1 . To minimize the total number of nodes in this tree, we would have this sub-tree contain N h- 1 nodes. By the property of an AVL tree, if one child has height h- 1 , the minimum height of the other child is h- 2 . By creating a tree with a root whose left sub-tree has N h- 1 nodes and whose right sub-tree has N h- 2 nodes, we have constructed the AVL tree of height h with the least nodes possible. This AVL tree has a total of N h- 1 + N h- 2 +1 nodes ( N h- 1 and N h- 2 coming from the sub-trees at the children of the root, the 1 coming from the root itself). The base cases are N 1 = 1 and N 2 = 2 . From here, we can iteratively construct N h by using the fact that N h = N h- 1 + N h- 2 + 1 that we figured out above....
View Full Document

Page1 / 6

rec04 - 6.006 Intro to Algorithms Recitation 04 February...

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

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