得到这个堆:
10
/ \
9 8
/ \ / \
7 6 5 4
/ \ /
3 2 1
当我将其从最大值转换为最小堆时,我将展示每一步。我不确定我是怎么做的,请帮忙吗? 谢谢。
答案 0 :(得分:1)
尝试逐层遍历树,从最低节点开始
如果你的堆由数组表示,那将很简单
步骤
比较1和6,并切换:
10
/ \
9 8
/ \ / \
7 1 5 4
/ \ /
3 2 6
下一步 - 比较2和7(以及切换):
10
/ \
9 8
/ \ / \
2 1 5 4
/ \ /
3 7 6
下一步 - 比较3和2(和NOswitching):
10
/ \
9 8
/ \ / \
2 1 5 4
/ \ /
3 7 6
下一步 - 比较4和8(和切换):
10
/ \
9 4
/ \ / \
2 1 5 8
/ \ /
3 7 6
等。这应该创建min-heap