Balanced Binary Search Trees

```Balanced Binary Search Trees
Drawback of a binary search tree
There are two basic ways to avoid having this happen:
1.
2.
Average time to build a BST with n keys and average time to find
an element in a BST.
The internal path length of a tree is
AVL trees
An AVL tree is
Balance factors:
-1 indicates
0 indicates
+1 indicates
Rebalancing is done by using rotations.
http://www.cse.hut.fi/en/research/SVG/TRAKLA2/exercises.shtml
web site for algorithm animations
Insertions in an AVL Tree
Insertions:
1.
2.
3.
Example
AVL tree Insertions--Example
Insert 10, 15, 5, 12, 20 into tree
Inserting 7 and then 6 requires a double rotation
Generalizing:
Deletions in AVL trees
Splay Trees
amortized running time
Strategy—every time a node is accessed, it must be moved.
A splay tree is an example of a self-adjusting tree.
Splaying
The starting node for a splay depends on the type of access.
1. find—
2. insert—
3. delete—
Let S be the start node of the splay
(1) If S is the root, STOP
(2) If S has a parent P, but no grandparent,
(3) S has both a parent P and a grandparent G.
```