Search Trees
Binary Search Trees (BST)
Related homework questions: h3-6
Binary Tree
A binary tree T is a set N of nodes where each node u0 has two pointers, u0.left and u0.right.
The size of T is ∣N∣.
Complete Binary Tree
Every level of the tree is completely filled, except possibly the last level. Moreover, the last level has to be filled from left to right.
If a complete binary tree is also complete on the last level, then it is called a perfect binary tree.
Height of binary trees
Minimum number of nodes in a binary tree of height h:
Maximum number of nodes in a binary tree of height h:
The minimum height of binary trees with n nodes:
Binary Search Tree
A binary tree is a binary search tree if each node u∈T has a field u.key that satisfies the BST property:
AVL Trees
Related homework questions: h3-7, h3-8
An AVL tree is a binary search tree where the left subtree and right subtree at each node differ by at most 1 in height.
Balance Factor
More generally, define the balance of any node u of a binary tree to be the height of the left subtree minus the height of the right subtree:
Insertion and Deletion Algorithms
UPDATE PHASE: Insert or delete as we would in a binary search tree.
REBALANCE PHASE: Let x be parent of the node that was just inserted, or just cut during deletion, in the UPDATE PHASE. THe path from x to the root will be called the rebalance path. We now move up this path, rebalancing nodes along this path as necessary.
Let u be the first unbalanced node we encounter along the rebalance path from bottom to top. It is clear that u has a balance of ±2. The situation is illustrated below:

Insertion Rebalancing
CASE (I.a): hL=h and hR=h−1. This means that the inserted node is in the left subtree of v. In this case, we rotate v, the result would be balanced. Moreover, the height of u is now h+1. We call this the "single-rotation" case.

CASE (I.b): hL=h−1 and hR=h. This means that the inserted node is in the right subtree of v. In this case, let us expand the subtree D and let w be its root. The two children of w will have heights h−δ and h−δ′ where δ,δ′∈{1,2}. Now a double-rotation at w results in a balanced tree of height h+1 rooted at w.

Deletion Rebalancing
CASE (D.a): hL=h and hR=h−1. This is like case (I.a) and treated in the same way, namely a single rotation at v. Now u is replaced by v after this rotation, and the new height of v is h+1. Now u is AVL balanced. However, since the original height is h+2, there may beb unbalanced node further up the rebalance path. Thus, this is a non-terminal case.
CASE (D.b): hL=h−1 and hR=h. This is like case (I.b) and treated in the same way, namely a double rotation at w. Again, this is a non-terminal case.
CASE (D.c): hL=hR=h. This case is new, we simply rotate at v. We check that v is balanced and has height h+2. Since v is in the place of u which has height h+2 originally, we can safely terminate the rebalancing process.

Ratio/Weight Balanced Trees
Related homework questions: h4-3
Extended size:
Ratio:
ρ-ratio
Insertion and Deletion Algorithms
Example: ho=1/3
UPDATE PHASE: Insert or delete as we would in a binary search tree. In insertion, this results in a new leaf x in T. If deletion, we will physically "cut" the leaf x from T.
REBALANCE PHASE: Let u be the parent of x. Clearly, every node that is not RB balanced must lie on the root-path of u. We therefore move up this path, rebalancing any such node.
Generalized B-Trees: (2,3)-trees
Related homework questions: h4-1, h4-2
An (a,b)-tree is a rooted, ordered tree with the following structural constraints:
Depth property: All leaves are at the same depth.
Degree bound: Let m be the number of children of an internal node u. This is also known as the degree of u. In general, we have the bounds a≤m≤b.
The root is an exception, with the bound 2≤m≤b.
(a,b)-search trees
Lecture Note 3, Page 80.
An (a,b)-search tree is an (a,b)-tree whose nodes are organized as an external search tree, which means items are only stored in leaves. Leaves are also called external nodes.

Leaves: (a′,b′) where 1≤a′≤b′.
Default assumption for leaves: a′=b′=1.
Reorganization of nodes
For an internal node u,
u is overfull if its degree is b+1.
u is underfull if its degree is a−1.
Simple Remedy: borrow or donate children

Strong Remedy: when simple remedy fails.
Split an overfull node

Merge an underfull node

Split-Merge Inequality
This is a combination of split inequality (a≤⌊2b+1⌋) and merge inequality (a≤2b+1). Since a and b are integers, these two are equivalent.
Last updated