0

我们有一个由 2016 个节点组成的二项式堆。

分解成二进制我们得到

11111100000

堆由 6 个树组成,节点为 512 256 128 64 32 和 16。

但是我们如何计算某个级别的节点数呢?计算数量的公式是什么,例如 3 级中的节点是什么?

有没有最终的解决方案?谢谢

4

1 回答 1

0

术语“二叉树”来自这样一个事实:在 n 阶二叉树中,给定任何整数 0 ≤ k ≤ n,在该级别的二叉树中恰好有 n 个选择 k 个节点。正如您在问题中指出的那样,您可以通过使用相关数字的二进制表示来确定二项式堆中将出现哪些树。因此,如果您有一种快速计算 n 选择 k 的方法(使用查找表或其他方法),您可以通过查看 n 中设置的一位来确定二项式堆中 k 级的节点数并且,对于每组 1 位,计算该单独树中的节点数,然后将结果相加。

于 2016-11-15T00:58:15.687 回答