张拭心 shixinzhang
怎么判断一个序列是不是堆?
关注作者
腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
圈层
工具
MCP广场
文章/答案/技术大牛
搜索
搜索
关闭
发布
张拭心 shixinzhang
社区首页
>
专栏
>
怎么判断一个序列是不是堆?
怎么判断一个序列是不是堆?
张拭心 shixinzhang
关注
发布于 2022-05-06 15:42:34
发布于 2022-05-06 15:42:34
2.5K
0
举报
文章被收录于专栏:
拭心的安卓进阶之路
拭心的安卓进阶之路
已知一个序列,比如{100,6070,50,32,65},怎么判断是不是堆?
答案:把这个序列看成数组型的二叉树,如果根结点是i,左子树是2*i,右子树是2*i+1。
堆分为最大堆与最小堆。
最大堆中所有父节点都比左子树、右子树大,比如已知序列,画成堆就是:
所以已知序列是个最大堆。
最小堆中所有父节点都比左子树、右子树小,比如{32,50,60,70,100,65},画成堆:
符合以上两种情况的序列就是堆
本文参与
腾讯云自媒体同步曝光计划
,分享自作者个人站点/博客。
原始发表:2015-08-16,如有侵权请联系
cloudcommunity@tencent.com
删除
前往查看
二叉树
数组
目录
答案:把这个序列看成数组型的二叉树,如果根结点是i,左子树是2*i,右子树是2*i+1。
堆分为最大堆与最小堆。
符合以上两种情况的序列就是堆
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档