绘制二项式堆
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,我只是填了数字
有人知道如何为值 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,我只是填了数字