N元树对于每个节点有N个子节点。如果树有M个非叶节点,如何找到叶节点的no?寻找叶节点的数量
Q
寻找叶节点的数量
3
A
回答
5
首先,如果根级别为0
,那么该树的K
级将具有N^K
节点。您可以逐级开始递增计数器,直到获得M
节点。通过这种方式,您会发现树由多少个层构成。并且叶节点的数量是最后一级上的节点数量 - 它是N^lastLevel
。
下面是一个例子:N = 3, M = 4
。
First level = 3^0 = 1
Second level = 3^1 = 3
1 + 3 = 4
所以我们发现树有两个级别(从0开始计数)。 答案是3^2 = 9
。
注意:您也可以直接找到层数,通过注意到M
是几何级数的总和:1 + 3 + 9 + 27 ... = M
希望这是显而易见的。
1
从数学上讲,节点的几何级数增加。
第0级 - 1
第一级 - N的
第二级 - N^2
第三级 - N的^ 3
.... 第m个水平 - N R个米
所以总第m级节点的数目为1 + n + n^2 + .. + n^m-1。 (1-n ^(m + 1))/(1-n ^(m + 1))+ 1^n),我们称这个数量为K.
现在我们需要的是叶节点的数量是n^m,我们得到的是K.即非叶节点的总数。做一些数学公式调整你会发现
N R个M = K *(N-1)+ 1
例如可以说在三元树中非叶节点的总数是40,然后使用这个公式可以得到叶节点的总数为81,这是正确的答案。
相关问题
- 1. Cytoscape:找到特定节点的叶子
- 2. 计数JSON叶节点
- 3. ElementTree findtext找不到叶节点
- 4. 找到特定节点的所有子节点,直到叶节点
- 5. Python minidom寻找空的文本节点
- 6. c#xml寻找标题为/的节点
- 7. 保存AVL树中节点下的树叶数量
- 8. 寻找在数量
- 9. xslt - 提取叶节点
- 10. 查找沿路径的节点数量
- 11. 递归XML步行寻找空节点
- 12. 寻找免费节点和詹金斯
- 13. 使用Xpath,找到包含ID =“userid”输入框的最叶节点节点
- 14. 寻找距离最近的向量点
- 15. 矢量数学 - 寻找2点的向量?
- 16. 寻找字节码
- 17. 式寻找可能的AVL树数与n个节点
- 18. 查找二叉搜索树的叶节点
- 19. 找到bst中最小的深度叶节点
- 20. 在二叉树的叶节点的
- 21. 计数高度平衡树的叶节点的计数函数
- 22. 使用数组实现来查找具有深度D的二叉树中的叶节点的数量
- 23. 树类的实现与节点和叶
- 24. 访问树中的节点/叶子
- 25. 添加新叶JTree的节点
- 26. 有向图的叶节点 - Prolog
- 27. 检索java的所有叶节点TreeMap
- 28. 图算法/寻找破坏图形的最节点的两个节点
- 29. 我如何得到Jtree Java中所有父节点的叶节点数
- 30. Python:在gxl文件中找到末端节点(叶)