确定二叉树是否是最大堆

时间:2018-11-03 00:38:05

标签: data-structures binary-tree heap max-heap

我正在编写一个函数来确定给定的二叉树是否是最大堆。如果二叉树只有一个节点(根),是否将其视为有效的最大堆?

1 个答案:

答案 0 :(得分:0)

要被视为有效的最大堆,二叉树必须满足两个属性:

  1. 形状属性。该树必须为complete binary tree。也就是说,除最后一个级别外,每个级别都必须已满。如果最后一个未满,则将其填满。
  2. 堆属性。每个子节点必须小于或等于其父节点。

具有单个节点的树同时满足这两个属性,因此它是有效的最大堆。