没有合适的资源?快使用搜索试试~ 我知道了~
iwannabetop#Awesome-Android-Learning-Guide#金鑫(堆)1
需积分: 0 0 下载量 154 浏览量
2022-07-25
14:31:11
上传
评论
收藏 5KB MD 举报
温馨提示
试读
声明一个可包含最大元素数量的堆,在这里需要比最大数量大1,把下标0的位置用来存储当前堆中的元素个数。public class Heap{element = ne
资源推荐
资源详情
资源评论
##堆(Heap)
###堆是一种特殊形式的完全二叉树。分为两种,最大堆和最小堆。
####最大堆:父节点的键值总是大于或者等于任何一个子节点的键值,根节点的元素一定是最大的,而且元素的值是从上到下逐渐变小的;
####最小堆:父节点的键值总是小于或者等于任何一个子节点的键值,根节点的值一定是最小的,而且元素的值是从上到下逐渐变大的。
##堆的基本操作:
堆本身就是一个完全二叉树,所以直接使用完全二叉数的方式去存储,也就是使用一个一维数组。0的位置用来存储元素的个数,1~n用来存储元素。
所以对于任意一个元素i来说,如果它有左孩子,那么它的左孩子一定是2i;如果有右孩子,那么右孩子一定是2i+1。
* 创建堆
声明一个可包含最大元素数量的堆,在这里需要比最大数量大1,把下标0的位置用来存储当前堆中的元素个数。
```
public class Heap{
private int[] element;
public Heap(int maxSize){
element = new int[maxSize + 1];
element[0] = 0;
}
}
```
* 是否为空堆
判断下标为0的元素是否为0
```
public boolean isEmpty(){
return element[0] == 0;
}
```
* 是否堆满
下标为0位置的元素存储的是堆的元素个数,堆的容量是数组的个数减1�
点击阅读更多
资源评论
ShepherdYoung
- 粉丝: 34
- 资源: 337
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- update9-20240601.5.205.slice.img.7z.002
- 微信小程序优惠券页面前端模板源码
- 林子雨编著《Spark编程基础(Python版)》 实验7 Spark机器学习库MLib编程实践数据
- 一种支持微信文本限制长度限制使用的,在合适的位置截取限制字节长度的字符串子串的java算法
- MoonPdfLib中解析PDF的库
- 学习Spring-使用Typora进行整理小白可以自学,有什么问题dd我
- update9-20240601.5.205.slice.img.7z.001.pd
- 2030.5 CSIP通信报文参考
- CSIP test程序解读
- POElight流放之路特效优化
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功