binary heaps的定义说,它应该是一个完整的二叉树,它应该按照堆属性遵循堆属性,在每个节点中存储的密钥大于或等于或小于或等于或等于节点的孩子们的钥匙。

在上面的树中,具有值70的节点大于其父10中断堆属性。但是,70也大于40,位于40的子树中。我们会说堆业也在40岁,即使40比它的两个孩子10和2更大?

在简单的术语中,根部的每个节点都要小于根θ

有帮助吗?

解决方案

我会认为大多数人只会说堆属性只适用于顶点及其直接子女,因为它是一个足够的定义,以维护到处都是堆积的“递归”堆积。这是一种思考它的清洁方式(你只需要检查每个顶点的O(1)对象,以验证树是堆,而不是每个顶点的O(n))。

我不知道是否有一个恰当的达成共识,也许其他人思考不同。

许可以下: CC-BY-SA归因
不隶属于 cs.stackexchange
scroll top