Да, конечно, лист (внешний) происходит от внутреннего узла еще один.Я думаю, что очень глупо доказывать «1 + 1 = 2»
Не уверен, что я последую вашему доказательству.Рассмотрим следующее:
- Действительно, каждый внешний узел имеет родительский (внутренний) узел, за исключением случаев, когда дерево состоит из одного узла, но
- Два внешних узла имеют одного и того же родителя (внутренний) узел, поэтому приведенное выше приведет к двойному счету, и
- Может быть несколько внутренних узлов, которые не имеют внешних узлов в качестве прямых дочерних элементов.
Затем необходимо доказать, чтоНедостаток внутренних узлов, упомянутых в пункте 2, компенсируется избытком внутренних узлов, упомянутых в пункте 3.
Конечно, это можно доказать несколькими способами, но сравнить его с 1 + 1 = 2 я могумнение упрощение.
С другой стороны, я бы согласился, что история о двух кучах немного излишня, но она может помочь визуализировать вещи.Было бы достаточно сказать, что разница между числом внутренних и внешних узлов остается неизменной с операцией удаления.
Альтернативное доказательство
Альтернативное доказательство будет иметь в качестве второго (рекурсивного) шагаудаление двух родственных внешних узлов.Сначала мы должны доказать, что такую пару можно найти, когда дерево - это не просто один узел:
Давайте возьмем лист, который имеет наибольшее расстояние до корня.Поскольку двоичное дерево является правильным, у этого узла есть родной брат.Также мы знаем, что у этого родного брата нет детей, в противном случае наш выбранный лист не был тем, у которого наибольшее расстояние до корня.Таким образом, мы заключаем, что действительно мы всегда можем найти пару внешних узлов одного брата.
Это удаление пары одного брата превращает их общий родительский узел во внешний узел.Отметим, что мы сохранили свойство «правильное двоичное дерево».Таким образом, мы удаляем 2 внешних узла и превращаем один внутренний узел во внешний узел.Таким образом, мы получаем один внешний и один внутренний узел меньше.Инвариантность сохраняется.Мы отмечаем, что мы всегда можем повторить эту операцию, пока не останется только один узел, который затем будет внешним узлом.
Это не так тривиально, как 1 + 1 = 2, хотя я бы понял, если бы у вас былпредпочтения.