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 + (왼쪽 하위 트리의 노드 수) + (오른쪽 하위 트리의 노드 수)
트리의 마지막 레벨이 절반으로 채워진 경우 iF는 오른쪽 하위 트리가 높이 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입니다.