Изменения

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

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

1019 байт добавлено, 01:22, 8 декабря 2017
Нет описания правки
h.color = RED
'''return''' x
</code>
 
<code>
'''void''' flipColors(h : '''Node''' h):
h.color = !h.color
h.left.color = !h.left.color
h.right.color = !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)
'''return''' ''new Node(key, value)'';
if (isRed(h.left) && isRed(h.right)) colorFlip(h);
int cmp = key.compareTo(h.key);
if (cmp == 0)
h.val = value;
else
if (cmp < 0)
h.left = insert(h.left, key, value);
'''else'''
h.right = insert(h.right, key, value);
if (isRed(h.right) && !isRed(h.left))
h = rotateLeft(h);
if (isRed(h.left) && isRed(h.left.left))
h = rotateRight(h);
'''return''' ''h''
</code>
288
правок

Навигация