Изменения

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

Левосторонние красно-чёрные деревья

54 байта убрано, 22:51, 13 марта 2018
Нет описания правки
В красно-черных деревьях используется такая операция как <tex>color flip</tex>, которая инвертирует цвет узла и двух его детей. Она не изменяет количество черных узлов при любом обходе от корня до листьев дерева, но может привести к появлению двух последовательных красных узлов.
[[File: ColorFlip.png|400px|thumb|upright| Color Flip]]
<code>
'''void''' flipColors( h : '''Node''' h) :
h.color = '''!''' h.color
h.left.color = '''!''' h.left.color
h.right.color = <tex> !</tex> h.right.color
</code>
==Методы==
<code>
'''void''' insert( '''key''' : Key, '''value''' : Value ):
root = insert(root, key, value)
root.color = BLACK
</code>
<code>
'''Node''' insert( h : '''Node''', key : '''Key''', value : '''Value'''):
'''if''' h == ''null''
h = rotateRight(h)
'''return''' ''h''
</code>
<code>
'''Value''' search(key : '''Key'''):
'''Node''' x = root
x = x.right
'''return''' ''null''
</code>
==Удаление==
288
правок

Навигация