Проблема, возникающая при удалении предшественника узла в дереве двоичного поиска

#algorithm #time-complexity #binary-search-tree

Вопрос:

Вопрос: Предположим, что другая структура данных содержит указатель на узел y в дереве двоичного поиска, и предположим, что y предшественник z удален из дерева процедурой TREE-DELETE . Какая проблема может возникнуть? Как можно TREE-DELETE переписать, чтобы решить эту проблему?

Я пытаюсь визуализировать ситуацию, если это может помочь, следующим образом: введите описание изображения здесь

TREE-DELETE алгоритм ниже. P[x] означает родителя x .

введите описание изображения здесь

Проблема: Теперь предположим, что если удаляемый узел имеет два дочерних узла, то y он будет удален. Если указатель укажет на y , возникнут проблемы. В такой ситуации указатель должен указывать на узел z . Итак, мой вопрос, пожалуйста, как, если узел удален ( z как предполагает вопрос), имеет 2 дочерних элемента, то y , пожалуйста, будет удален? Насколько я помню, функция удаления работает в двоичном дереве не так. Он удалит узел и заменит его либо преемником, либо предшественником без каких-либо дальнейших действий. Если z преемник y был удален, тогда должен быть другой преемник узла y в случае, если дерево не пустое, имеет более 2 узлов, поэтому я не вижу, в чем здесь проблема, пожалуйста?

Изменить: после удаления y предшественника указатель будет продолжать указывать на y то, как я его вижу, и z будет удален?