Изменения

Перейти к: навигация, поиск

Красно-черное дерево

418 байт добавлено, 05:33, 21 марта 2012
Свойства
== Свойства ==
# Узел либо красный, либо чёрный.
# Все листья — черные.
# Оба потомка каждого красного узла — черные.
# Всякий простой путь от данного узла до любого листового узла, являющегося его потомком, содержит одинаковое число черных узлов.
 
* '''Свойство 1: '''Число листьев в дереве с высотой <tex>h</tex> не менее, чем <tex>2^{h-1}</tex>.<br/>
'''Доказательство: '''Докажем по индукции. При <tex>h=1</tex> получаем дерево, в котором чёрными являются только листья, а их больше одного.
Иначе пусть корень - чёрный, тогда оба его поддерева имеют чёрную высоту h-1 и, следовательно, не менее, чем <tex>2^{h-2}</tex> элементов. Тогда всё дерево имеет более <tex>2^{h-1}</tex> элементов. В случае, если корень красный, то оба его поддерева имеют чёрные корни и чёрную высоту <tex>h</tex>, то есть, как только что было показано, не менее <tex>2^{h-1}</tex> элементов. Таким образом, дерево будет иметь более <tex>2^{h}</tex> элементов.<br/>
* '''Свойство 2: '''Число листьев в красно-чёрном дереве высоты <tex>h</tex> не менее <tex>2^{(h-1)/2}</tex>.<br/>
'''Доказательство: '''Возьмём самый длинный путь в дереве. Всего в нём <tex>h+1</tex> узлов. По крайней мере половина узлов чёрные, поскольку двух подряд идущих красных узлов быть не может, а лист чёрный. Поэтому чёрная высота дерева не меньше <tex>(h-1)/2</tex>, и, по первому утверждению, <tex>2^{(h-1)/2}</tex> элементов.<br/> 
Отсюда также получаем, что высота дерева не более <tex>2log_2 N+1</tex>, где N - число элементов дерева, т.е. <tex>O(log N)</tex>
98
правок

Навигация