Re: балансировка бинарного дерева
- From
- Spiridonov Ed (2:5059/9.55)
- To
- Spiridonov Ed
- Date
- 2003-01-12T09:32:40Z
- Area
- RU.ALGORITHMS
Здравствуй Spiridonov!
Было <Пятница Январь 10 2003>, когда я прочитал как Spiridonov Ed писал к Nick
Kovaliov
похоже мне нужно вот это - bb-tree (сбалансированное по весу дерево, bounded
balanced tree).
определение приблизительно такое:
Let Alpha be a real such that 1/4 < Alpha <= 1 - sqrt(2)/2
Let T be a binary search tree
Let Tl (Tr ) be the left (right) subtree of the root of T
Definitions
The root balance of T, Rho , is given by:
Rho(T) = | Tl | / |T | = 1 - | Tr | / | T |
where | T | = number of leaves of tree T
A tree T is of bounded balance Alpha ,
if for every subtree T' of T we have:
Alpha <= Rho(T' ) <= 1 - Alpha
другое определение, которое я встречал:
0 <= Alpha <= 1/2
Rho(T) = (| Tl | + 1) / (| T | + 1)
Alpha <= Rho(T' ) <= 1 - Alpha
но вот нигде не могу найти конкертных алгоритмов добавления/удаления вершин.
никто не поделится? :)
url (или в крайнем случае ссылка на книгу, которую в библиотеке и/или магазине
найти можно) приветствуется.
ps: почему bb-tree, а не avl и т.д. - по условию задачи у меня уже в каждой
вершине хранятся | Tl | и | Tr | (которые в этом случае будут использоваться, а
для avl мы получим лишний геморрой с их корректным обновлением после
балансировки дерева)
С уважением, Ed.
--- Ничего особенного
* Origin: My tiny station, Penza (2:5059/9.55)