首页 > 常见问题 > 正文

堆序列怎么判断

藏色散人
发布: 2019-06-13 11:27:44
原创
12517 人浏览过

堆序列怎么判断

已知一个序列,比如{100,6070,50,32,65},怎么判断是不是堆?

答案:把这个序列看成数组型的二叉树,如果根结点是i,左子树是2*i,右子树是2*i+1。

堆分为最大堆与最小堆。

1.最大堆中所有父节点都比左子树、右子树大,比如已知序列,画成堆就是: 

a46d6d715befd69c7e7b1455dbf13ab.png

所以已知序列是个最大堆。

2.最小堆中所有父节点都比左子树、右子树小,比如{32,50,60,70,100,65},画成堆: 

1523797fcbf5642fe53bc2cf410c999.png

符合以上两种情况的序列就是堆

以上是堆序列怎么判断的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板