Операция удаления в красном черном дереве

Недавно я изучаю левое сухое красное черное дерево. А я красная этот чтобы помочь мне учиться. Тем не менее, я не могу понять значение кодов в удалять операции, они являются:

if (isRed(h.left))h = rotateRight(h);

Я просто не могу найти хороший пример, чтобы помочь мне получить использование этого кода.

Кто-нибудь может помочь мне объяснить причину, почему код должен быть там (на крошечном примере гораздо лучше)?

0

Решение

Страница 7 из PDF содержит полную функцию. В основном, что он делает, если линия «красная» (то есть она была добавлена, чтобы заставить дерево быть LLRBT), а затем поверните левый дочерний узел на его месте.

    A
/ \
B   C

Если я удаляю A, я бы повернул B на это место:

    B
\
C
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]