В примере этой статьи описывается метод использования Java для использования слияний и удаления для удаления узла в двоичном дереве. Поделитесь этим для всех для вашей ссылки. Конкретный анализ заключается в следующем:
Идея реализации очень проста:
Сначала: найти узлы, которые будут удалены
Во -вторых: если удаленный узел нет, нет правого поддерева, то левая цепочка подэри к родительскому узлу
Третий: если удаленные узлы не остаются, левая цепочка подэри к родительскому узлу
Форт: Если удаленные узлы левые и вправо, то вы можете объединить подзамету после удаления узла: есть два способа использования правого узла левого подзадачи, которые удаляют узлы, указывают на правый под -три. из узел -узла, а другое -указать левый подэри удаленного узла с самым левым узлом числа слов удаленного узла.
Реализация Java выглядит следующим образом:
Public void deleteByerring (int el) {intbstnode tmp, node, p = root, prev = null;/*Найти узел, который должен быть удален*/while (p! = Null && key! = El) rev = p; .Key <el) p = p.ry; // Узел не имеет правильных детей (если таковые имеются) прикрепляется к Node.left; Прикреплен к Node = node.richt // его Paintelse {tmp = node.left; ; .left = node;} else prev.richt = node} else if (root! = null) {System.out.println («Узел не в дереве»);Есть надежда, что эта статья полезна для дизайна программы Java каждого.