已知一个序列,比如{100,6070,50,32,65},怎么判断是不是堆?
答案:把这个序列看成数组型的二叉树,如果根结点是i,左子树是2*i,右子树是2*i+1。
堆分为最大堆与最小堆。
1.最大堆中所有父节点都比左子树、右子树大,比如已知序列,画成堆就是:
所以已知序列是个最大堆。
2.最小堆中所有父节点都比左子树、右子树小,比如{32,50,60,70,100,65},画成堆:
符合以上两种情况的序列就是堆
以上就是堆序列怎么判断的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号