要使m叉树高度最小的必要前提是,每一个分支结点都要依次满孩子,即每一层的分支节点都要有m个孩子。
即高度最小的情况–所有结点都有m个孩子
由于高度为h的m叉树所能能容纳的最大结点个数为(mh - 1)/(m - 1)
假设高度为h的m叉树的结点个数为n
可得 n <= (mh - 1)/(m - 1)
又由于高度为h的m叉树的结点个数,一定小于高度为h - 1的m叉树的结点个数可得: n > (mh-1 - 1)/(m - 1)
所以: (mh-1 - 1)/(m - 1) < n <= (mh - 1)/(m - 1)
不等式同时乘上 m - 1可得:
(mh-1 - 1) < n(m - 1) <= (mh - 1)
不等式同时+1可得:
mh-1 < n(m - 1) + 1 <= mh
不等式同时取对数可得:
h - 1 < logm^n(m - 1)+1^ <= h
可得h的最小值为 ⌈logm(n(m-1) + 1)⌉