我在这个问题上弄错了,因为问题在 Binary Max Heap 中说:“如果 y 是节点 x 的右子树中的一个节点,那么 y.key >= x.key。” 我附上了下面问题的截图。
如果 y 是节点 x 的子树中的一个节点,我认为 x.key 比 y.key 大,因为根据最大堆属性,父节点大于其子节点。我想知道我是否遗漏了什么。提前致谢。
我在这个问题上弄错了,因为问题在 Binary Max Heap 中说:“如果 y 是节点 x 的右子树中的一个节点,那么 y.key >= x.key。” 我附上了下面问题的截图。
如果 y 是节点 x 的子树中的一个节点,我认为 x.key 比 y.key 大,因为根据最大堆属性,父节点大于其子节点。我想知道我是否遗漏了什么。提前致谢。
不要认为你缺少任何东西。Minheap 冒泡到 root 的最小密钥,maxheap 冒泡到 root 的最大密钥。
现在,最小-最大堆......这些很有趣。
二元最大堆是其中 -
根节点具有最大值。
每个节点的值等于或小于其父节点的值。
是完全二叉树。
在 Binary Max-Heap 中,父节点总是大于其任何子节点
所以你是对的!x.key 比 y.key 大,因为根据最大堆属性,父节点大于其子节点是正确的。