我正在尝试将 minHeap 类转换为 maxHeap 类。我得到了 minHeap 类的代码,其中一种方法是 add。它看起来像这样:
while (index > 1 && getParent(index).compareTo(newElement) > 0)
第一个节点自动设置为 null,因此添加的所有内容都放在节点 1 以后。如前所述,这段代码给出了一个 minHeap 结构。所以将其更改为 maxHeap,我只是像这样翻转比较器符号:
while (index > 1 && getParent(index).compareTo(newElement) < 0)
我输入的项目由一个整数值存储。按插入顺序,它们是:
3
7
8
10
6
1
9
2
在 minHeap 结构中,这些存储在节点中,如下所示:
1
2 3
6 7 8 9
10
在 maxHeap 结构中,更改符号会像这样存储它们:
10
8 9
2 7 3 6
1
请注意,它们的顺序不再与 minHeap 结构中的顺序相同。这很重要还是仍然是有效的 maxHeap?
为我展示树状结构的糟糕尝试道歉。