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

相关文章:

  • 2021-09-25
  • 2021-10-15
  • 2021-06-06
  • 2022-01-23
  • 2021-10-10
猜你喜欢
  • 2021-11-17
  • 2022-12-23
  • 2021-07-02
  • 2022-12-23
  • 2022-01-02
  • 2021-09-07
相关资源
相似解决方案