判断一个序列是否是堆 发表于 2020-05-12 分类于 数据结构 阅读次数: Valine: 本文字数: 199 阅读时长 ≈ 1 分钟 已知一个序列,比如{100,6070,50,32,65},怎么判断是不是堆? 答案:把这个序列看成数组型的二叉树,如果根结点是i,左子树是2*i,右子树是2*i+1。堆分为最大堆与最小堆。 最大堆中所有父节点都比左子树、右子树大,比如已知序列,画成堆就是: 所以已知序列是个最大堆。 最小堆中所有父节点都比左子树、右子树小,比如{32,50,60,70,100,65},画成堆: 符合以上两种情况的序列就是堆 相关文章推荐 栈和队列的区别及应用 喜欢你就打赏一下 打赏 微信支付 本文作者: Bryce 本文链接: https://bryceustc.github.io/2020/05/12/判断一个序列是否是堆/ 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!