绘制二项式堆

DRAWING Binomial Heap

有人知道如何为值 1-10 绘制二项式最大堆吗?我目前正在我的数据结构课程中学习堆,但是在观看了多个视频之后我仍然无法理解!而且我不确定我是否做对了。

我知道二项式堆与过去的堆有关,但我特别关注最大堆。我希望通过绘制它并看到最终结果,我会有更好的理解。

这是我的实现(每个'return'是一个新的关卡

10

9 8 6(所有 3 个数字都与 10 相连)

7 5 4(7 连接到 8,5 & 4 连接到 6)

2 1 3(2 接 7、1 接 5、3 接 4)

我不确定将 1 和 2 放在哪里。

如果需要,请告诉我是否应该以某种方式改进我的问题。谢谢!

根据tag info, a binomial heap is a forest of binomial trees. And according to this wikipedia article,每棵树中元素的数量必须始终是2的幂。而且,每种大小只能有一棵树。因此,例如,如果有两棵大小为 4 的树,则需要将它们组合成一棵大小为 8 的树。

所以一个有 10 个元素的二叉堆由两棵树组成:一棵有 8 个元素的树,一棵有 2 个元素的树。这意味着您的堆如下所示。 1 和 2 没有连接到其他八个元素。它们在单独的树中。

虚线可以忽略。图片来源the wikipedia article,我只是填了数字