【发布时间】:2018-01-21 16:39:32
【问题描述】:
我正在尝试找出我的 BST 可以拥有的最低级别数。我已经有一个函数 Count(),它将为我提供树中存在的节点总数。在这个例子中假设 n = Count() 的结果。所以 n 是树中的节点数。
这是我现在正在尝试的,将日志更改为 base 2:
(int)Math.Log(n + 1, 2)
这似乎只在关卡满时才有效。例如,对于具有 15 个节点的 FULL 树,它可以正确显示 4 个级别。另外,假设具有 1 个单节点的 BST 具有 1 级(我听说有时人们认为这是 0 级?)。但是如果输入13个节点,BST肯定还需要4级,但是没有满级,我的结果是不准确的。
我的公式错了吗?或者我的问题是什么?
【问题讨论】:
-
尝试四舍五入到最接近的整数。当您进行 int 强制转换时,结果会向下舍入。
-
@yaman 好的,谢谢。现在似乎工作正常。
标签: algorithm binary-tree binary-search-tree