Изменения

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

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

30 байт добавлено, 14:55, 18 июня 2018
Псевдокод
'''Node''' moveRedLeft(h : '''Node''')
colorFlip(h)
'''if ''' (isRed(h.right.left)
h.right = rotateRight(h.right)
h = rotateLeft(h)
'''Node''' deleteMax(h : '''Node''')
'''if ''' (isRed(h.left))
<span style="color:#008000">// вращаем все 3-вершины вправо</span>
h = rotateRight(h)
<span style="color:#008000">// поддерживаем инвариант (h должен быть красным)</span>
'''if ''' (h.right == '''null''')
return null
<span style="color:#008000">// заимствуем у брата если необходимо</span>
'''if ''' (!isRed(h.right) '''&&''' !isRed(h.right.left))
h = moveRedRight(h)
<span style="color:#008000">// опускаемся на один уровень глубже </span>
Анонимный участник

Навигация