Доказательство, что бинарное дерево имеет не более

14

Я пытаюсь доказать, что бинарное дерево с узлами имеет самое большее nNлистья. Как мне поступить с индукцией?N2

Для людей, которые следили за оригинальным вопросом о кучах, он был перенесен сюда .

varatis
источник
3
Во-первых, обратите внимание, что мы можем использовать LaTeX здесь. Нажмите «изменить», чтобы увидеть, как я это сделал. Во-вторых, я не вижу индукции. Вы добавляете туда несколько чисел, но у вас нет никакой структуры доказательств и никакого отношения к кучам. Вы можете улучшить это? И, наконец, утверждение неверно: отсортированный список выполняет свойство кучи и имеет только один лист. Вы оставили некоторые предположения?
Рафаэль
Правит ли @ Kaveh то, что вы имели в виду, то есть "самое большее"?
Рафаэль
@ Рафаэль, читая вопрос еще раз, я думаю, что речь может идти о кучах, где каждый внутренний узел имеет ровно двух дочерних элементов (в этом случае исходный вопрос имеет смысл, а утверждение правильное или что-то подобное).
Каве
1
@Kaveh Ах, да, я вижу твое замешательство. Узлы кучи имеют не более двух дочерних
элементов
1
Понимаю. С точно сформулированным требованием, действительно, нет необходимости в дополнительных предположениях. Это свойство действительно для всех бинарных деревьев.
Рафаэль

Ответы:

7

Теперь я предполагаю, что вопрос заключается в следующем:

Если дано двоичное дерево с узлами, докажите, что оно содержит не более nNлистья.N2

Давайте работать с определением дерева . Для T такого дерева, пусть п Т число узлов в Т и л Т число листьев в T .Tree=EmptyLeafNode(Tree,Tree)TnTTlTT

Вы правильно делаете это по индукции, но вам понадобится структурная индукция, которая следует древовидной структуре. Для деревьев это часто делается как полная индукция по высоте деревьев.h(T)

Индукционный якорь состоит из двух частей. Во-первых, для имеем T = E m p t y с l T = n T = 0 ; претензия явно относится к пустому дереву. Для h ( t ) = 1 , т.е. T = L e a f , аналогично имеем l T = 1 = n Th(t)=0T=EmptylT=nT=0h(t)=1T=Leaf, так что претензия распространяется на листья.lT=1=nT2

Гипотеза об индукции: Предположим, что утверждение верно для всех (двоичных) деревьев с произвольным, но фиксированным h ( T ) k , k 1 .Th(T)kk1

Для индуктивного шага рассмотрим произвольное двоичное дерево с h ( T ) = k + 1 . Поскольку k 1 , T = N o d e ( L , R ) и n T = n L + n R + 1 . Поскольку L и R также являются бинарными деревьями (иначе T не будет) и h ( L ) , h (Th(T)=k+1k1T=Node(L,R)nT=nL+nR+1LRT , гипотеза индукции применяется и имеетh(L),h(R)k

lLnL2 and lRnR2.

Поскольку все листья находятся либо в L, либо в R , мы имеемTLR

lT=lL+lRnL2+nR2nL+nR+12()=nT2

Неравенство , отмеченное может быть проверено с помощью (четыре стороны) случаем различия по поводу того , п L , п R2 N . В силу индукции это завершает доказательство.()nL,nR2N


В качестве упражнения вы можете использовать ту же технику для доказательства следующих утверждений:

  • Каждое совершенное двоичное дерево высоты имеет 2 h - 1 вершин.h2h1
  • Каждое полное двоичное дерево имеет нечетное количество узлов.
Рафаэль
источник
2

Я немного смущен этим вопросом. Если вас интересуют деревья со степенью не более , что, как говорит Википедия, вам нужно, мы сталкиваемся с проблемой, что у одного ребра n = 2 узла и n = 2 листа, но n / 2 = 1 . Во всяком случае, здесь есть что-то близкое, что имеет легкий аргумент. 3n=2n=2n/2=1

Пусть такое дерево с n узлами и L листьями. Так как T - дерево, существует n - 1 ребер, и их двойной счет, мы видим, что 2 n - 2 L + 3 ( n - L ), который говорит, что 2 L n + 2, и это тесно в двух Пример вершины выше. Я думаю, что если вы хотите предположить, что существует один корень степени два и n 3 , то вы можете уточнить этот аргумент, чтобы дать 2 LTnLTn1

2n2L+3(nL)
2Ln+2
n3 это то, что вы ищете, и это плотно, когда дерево заполнено.
2Ln+1
Луис
источник
Я предполагаю, что мы молча предполагаем, что здесь укоренились деревья; Википедия тоже так делает.
Рафаэль
1
Википедия вроде двусмысленно говорит: «За пределами дерева часто существует ссылка на« корневой »узел (предок всех узлов), если он существует». Во всяком случае, этот аргумент, кажется, стоит записать, поскольку он отличается и довольно прост.
Луи
Если вы читаете дальше, все ребра направлены, они говорят о «детях» и «родителях». Это не имеет смысла в деревьях без корней. Как следствие, лист будет узлом со степенью 0.
Рафаэль