Изменения

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

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

18 байт добавлено, 02:46, 8 декабря 2017
Удаление
root.color = BLACK
</code>
 
<code>
'''Node''' deleteMin( h : '''Node'''):
'''return''' fixUp(h)
</code>
 
<code>
'''Node''' moveRedLeft('''Node''' h):
colorFlip(h): '''if''' isRed(h.right.left)
h.right = rotateRight(h.right)
h = rotateLeft(h)
colorFlip(h)
'''return''' h
</code>
<code>
'''Node’’’ moveRedRight(h :'''Node''' ):
colorFlip(h) '''if''' isRed(h.left.left))
h = rotateRight(h)
colorFlip(h)
'''return''' h
</code>
<code>
'''if''' key.compareTo(h.key) < 0)
'''if''' !isRed(h.left) '''&&''' !isRed(h.left.left)
h = moveRedLeft(h) h.left = delete(h.left, key) '''else''' '''if''' isRed(h.left) h = rotateRight(h) '''if''' key.compareTo(h.key) == 0 '''&&''' (h.right == null) '''return''' null '''if''' !isRed(h.right) && !isRed(h.right.left) h = moveRedRight(h) '''if''' key.compareTo(h.key) == 0
h.val = get(h.right, min(h.right).key)
h.key = min(h.right).key
h.right = deleteMin(h.right)
'''else''' h.right = delete(h.right, key) '''return''' fixUp(h)
</code>
288
правок

Навигация