C++判断一个序列是否为堆(最大堆、最小堆)

1、如何判断一个序列是不是堆? 把这个序列看成是数组型的二叉树,如果根节点是i,左子数是2*i,右子数是2*i+1。 2、堆分为最大堆和最小堆。 (1)最大堆 以{100,60,70,50,32,65}为例分析: 最大堆中所有父节点都比左子树大,比右子数小,画成堆形式如下:  (2)最小堆 比如{32,50,60,70,100,65}为例分析: 最小堆中所有父节点都比左子树小,比右子数大,画成堆形
相关文章
相关标签/搜索