Почему RBT всегда имеет ноль узлов в качестве своих конечных узлов? - PullRequest
2 голосов
/ 12 февраля 2020

Я не знаю, зачем нам нужен узел NIL в качестве конечного узла в RBT. Кто-нибудь может дать объяснение?

1 Ответ

3 голосов
/ 12 февраля 2020

NIL - это специальный тип узла, который указывает на листовые узлы в других деревьях, таких как деревья двоичного поиска и деревья AVL.

Узлы NIL помогают сбалансировать высоту черного цвета

При удалении высота черного узла немедленно передается дочернему элементу, если у него нет дочерних элементов, он должен передать кого-то ... таким образом, узлы NIL помогают ему

Другой способ, когда вы вставляете новый узел, узел nil помогает нам идентифицировать случай, который мы столкнулись (или дядя красный или дядя черный) иногда дядя может быть узлом NIL

...