从最大堆转换为最小堆
Convert from max heap to min heap
得到这个堆:
10
/ \
9 8
/ \ / \
7 6 5 4
/ \ /
3 2 1
我将展示从最大堆转换为最小堆时的每个步骤。我不确定我该怎么做,有什么帮助吗?
谢谢。
尝试按级别遍历树,从最低节点开始
如果你的堆用数组表示,那就简单了
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
等这应该创建最小堆
得到这个堆:
10
/ \
9 8
/ \ / \
7 6 5 4
/ \ /
3 2 1
我将展示从最大堆转换为最小堆时的每个步骤。我不确定我该怎么做,有什么帮助吗? 谢谢。
尝试按级别遍历树,从最低节点开始
如果你的堆用数组表示,那就简单了
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
等这应该创建最小堆