在堆最大项(Largest Item in Heap)

2019-09-27 18:18发布

在堆最大项必须出现在位置1,第二大的必须在位置2或位置3.给在大小31,在第k个最大(ⅰ)可以出现的堆位置的列表中,以及(ii)不能出现,对于k = 2,3,4(假设值是不同)。

我试图研究这个对我的期中考试,但它的凌晨三点钟,我被困在这个问题上的书,因为它不提供解决方案。 任何帮助,将不胜感激。

Answer 1:

如果看一下堆实现在维基百科例如,你会看到,第三大可在2或3位,取一个第二大不大,以及位置4 + 5或6 + 7,这取决于其中第二大是。 因此,它可以在2-7。

第四大然后必须在任何位置的第三大就可以了,再加上这是第三大的直接孩子的任何位置。 这意味着它可以从2-15的任何地方。

下面的图片是基于0,因为它是一个数组实现,所以添加一个用于位置。



文章来源: Largest Item in Heap
标签: java stack heap