我们有一个由2016节点组成的二项式堆。
分解为二进制,我们得到
11111100000
堆由6个strees组成,节点512 256 128 64 32和16。
但是我们如何计算某个级别的节点数?计算数量和节点的公式是什么,例如3级?
对此有任何终极解决方案吗?感谢
答案 0 :(得分:0)
术语“二项式树”来自这样的事实:在n阶二叉树中,给定任何0≤k≤n的整数,在该级别的二项式树中恰好有n个选择k个节点。正如您在问题中所述,您可以使用相关数字的二进制表示来确定二项式堆中将存在哪些树。因此,如果您有快速的计算方法,请选择k(使用查找表或其他方法),通过查看n中设置的一位,可以确定二项式堆中k级的节点数。并且,对于每组1位,计算该单个树中的节点数,然后将结果加在一起。