Сбаллансированные деревья поиска (6 марта 2014)
- k-Tree
- Все вершины имеют от k+1 до 2k+1 детей и, соответственно, от k до 2k ключей. Корень может иметь меньше детей. Ключи и дети чередуются.
- Научимся делать вставку (удалении по аналогии).
- Определение RB-Tree. Покажем, что RB-Tree = 2-3-4-Tree
- 2-3-4 − излишество, достаточно потребовать 2-3. Поэтому в красно-черном достаточно разрешить красным быть только левому сыну (получили AA-дерево). Все случаи в реализации RB-дерева получаются из быстрой реализации 2-3-дерева.
- Крутые деревья
- Через Splay и Merge можно выразить Add и Delete
- RBST (Randonized-BST): корень − случайная вершина
- Декартово дерево: куча по y, BST по x. Почти RBST, но рандом генерируется не походу, а хранится в y.
- Забавные деревья
- Если размер дерева стал ровно 2k-1, перебаллансируем его полностью
- Если size внука в больше size-а сына, повернем
- Кодим
- Динамическое дерево отрезков [code]
- Не balanced дерево поиска (вставка, поиск) [code]
- Persistent tree (применимо к любому дерево) [code]
- Малое вращение. Код малого вращения. Persistent малое вращение. [code]