计算特定级别二项式堆中的节点数

时间:2016-11-09 18:02:45

标签: algorithm data-structures heap binomial-heap

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

分解为二进制,我们得到

11111100000

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

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

对此有任何终极解决方案吗?感谢

1 个答案:

答案 0 :(得分:0)

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