Understand the maximum number of elements in a subtree happens for the left subtree of a tree that has the last level half full.Draw this on a piece of paper to realize this.
Как только это станет ясным, легко получить оценку 2N / 3.
Предположим, что общее количество узлов в дереве равно N.
Количество узлов в дереве = 1 + (Количество узлов в левом поддереве) + (Количество узлов в правом поддереве)
Для нашего случая, когда дерево имеет последний наполовину заполненный уровень, если мы предполагаем, что правое поддерево имеет высоту h, то левое поддерево, если оно имеет высоту (h + 1):
Количество узлов в левом поддереве = 1 + 2 + 4 + 8 .... 2 ^ (h + 1) = 2 ^ (h + 2) -1 ..... (i)
Количество узлов в правом поддереве = 1 + 2 + 4 + 8 .... 2 ^ (h) = 2 ^ (h + 1) -1 ..... (ii)
Таким образом, подключение к:
Количество узлов в дереве = 1 + (Количество узлов в левом поддереве) + (Количество узлов в правом поддереве)
=> N = 1 + (2^(h+2)-1) + (2^(h+1)-1)
=> N = 1 + 3*(2^(h+1)) - 2
=> N = 3*(2^(h+1)) -1
=> 2^(h+1) = (N + 1)/3
Подставив это значение в уравнение (i), получим:
Number of nodes in Left Subtree = 2^(h+2)-1 = 2*(N+1)/3 -1 =(2N-1)/3 < (2N/3)
Следовательно, верхняя граница максимального числа узлов в поддереве для дерева с N узлами равна 2N / 3.