我正在尝试为优先队列实现自下而上的二进制堆构造。到目前为止,我已将所有值按任意顺序放入 ArrayList 中,现在我想找到最后一个内部节点的 element#,然后在其上运行 BubbleDown() 函数,然后遍历堆中的每个内部节点。
如何找到最后一个内部节点的元素#?这是表格的外观,(N = 堆中的元素数,LIN# = 最后内部节点的元素数):
N LIN#
2 1
3 1
4 3
5 3
6 3
7 3
8 7
9 7
10 7
11 7
12 7
13 7
14 7
15 7
16 15
etc etc