Ну, с точки зрения языка, successor
- это тот, который идет сразу после этого, подразумевая, что он должен быть больше.
С точки зрения алгоритма удаления, вы можете использовать как преемника, так и предшественника. заменить удаленный узел.
Successor
: это наименьший узел в правом поддереве удаленного узла, что означает, что это наименьший узел больше удаленного узла, поэтому вы гарантируете, что, если вы замените им удаленный узел, он все равно будет меньше, чем любой другой узел в правом поддереве, поэтому он не нарушит никакого свойства.
Predecessor
: это самый большой узел в левом поддереве удаленного узла, что означает, что это самый большой узел, который меньше удаленного узла, поэтому вы гарантируете, что, если вы замените удаленный узел этим, он все равно будет больше, чем любой другой узел в левом поддереве, поэтому это не сломает никакое свойство.
В двух словах, вы можете использовать преемника или предшественника без проблем, это не вопрос Определение, только вопрос выбора.