Tree 二进制最大堆的中位数始终是叶节点吗?

Tree 二进制最大堆的中位数始终是叶节点吗?,tree,heap,binary-heap,max-heap,Tree,Heap,Binary Heap,Max Heap,如果我有一个二叉树max heap,一个具有max heap属性的几乎完整的二叉树,那么中间值是否总是一个叶节点?我已经找到了一些这样的例子,但还没有找到一个反例——尽管这还不足以让我正式证明这一点 i、 e.对于中位数为[3]的值集{1,2,3,4,5},树应为: 5 / \ 4 [3] / \ 2 1 所以在这种情况下,中间值是一个叶节点。不,它并不总是一个叶节点。你可以很容易地重新安排你的例子来证明这一点。使用这些相同项的另一个有效最大堆是: 5

如果我有一个二叉树max heap,一个具有max heap属性的几乎完整的二叉树,那么中间值是否总是一个叶节点?我已经找到了一些这样的例子,但还没有找到一个反例——尽管这还不足以让我正式证明这一点

i、 e.对于中位数为[3]的值集{1,2,3,4,5},树应为:

    5  
   / \
  4   [3]
 / \
2   1

所以在这种情况下,中间值是一个叶节点。

不,它并不总是一个叶节点。你可以很容易地重新安排你的例子来证明这一点。使用这些相同项的另一个有效最大堆是:

    5  
   / \
 [3]  4
 / \
2   1
考虑7个项目的完整最大堆:

       7
   6     [4]
 1   5  3   2
这是一个有效的最大堆。最大的项位于根节点,所有子节点都比其父节点小

从这两个例子中可以清楚地看出,您不能假设堆中的中位数始终是叶节点