33 lines
731 B
Markdown
33 lines
731 B
Markdown
# Self balancing trees aka AVL trees
|
|
|
|
_time complexity will be in terms of height_
|
|
|
|
> Height:
|
|
distance from nulls after leaves
|
|
* impl: _root will typically have the largest height value_
|
|
|
|
> Balance:
|
|
| left_height - right_height |
|
|
we can discard the || if we want negative balance vals but it really shouldn't matter
|
|
basically: we want the balance for each node to be 1 or 0.
|
|
|
|
# Self balancing part
|
|
|
|
We maintain balance through the tree's lifetime as we insert/delete things into the tree
|
|
|
|
> Insertion/Deletion
|
|
* just like BST but we balance starting from the new node
|
|
|
|
# Restoring balance
|
|
|
|
There are 4 special cases when dealing with restoring balance:
|
|
|
|
1. left-left
|
|
2. left-right
|
|
3. right-left
|
|
4. right-right
|
|
|
|
# Tries
|
|
|
|
|