288
правок
Изменения
Нет описания правки
root = insert(root, key, value)
root.color = BLACK
'''Node''' insert( h : '''Node''', key : '''Key''', value : '''Value'''):
//Вставка нового узла к листу дерева
'''if''' h == ''null''
'''return''' '''new''' Node(key, value)
//Расщепление узла с <tex>4</tex>-я потомками
'''if''' isRed(h.left) '''&&''' isRed(h.right)
colorFlip(h)
//Стандартная вставка [[Дерево поиска|в дереве поиска]]
'''int''' cmp = key.compareTo(h.key)
'''if''' cmp == 0
'''else'''
h.right = insert(h.right, key, value)
//Принудительное вращение влево
'''if''' isRed(h.right) '''&&''' '''!'''isRed(h.left)
h = rotateLeft(h)
////Балансировка узла с <tex>4<\tex>-я потомками
'''if''' isRed(h.left) '''&&''' isRed(h.left.left)
h = rotateRight(h)