没有合适的资源?快使用搜索试试~ 我知道了~
第3章 第3节 堆及其应用(C++版).ppt
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 129 浏览量
2021-12-17
00:02:51
上传
评论
收藏 2.17MB PPT 举报
温馨提示
![preview](https://dl-preview.csdnimg.cn/64910491/0001-95a3643c15847bcf251f243129de8b85_thumbnail.jpeg)
![preview-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/scale.ab9e0183.png)
试读
56页
第3章 第3节 堆及其应用(C++版).ppt
资源推荐
资源详情
资源评论
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![ppt](https://img-home.csdnimg.cn/images/20210720083527.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![text/x-c](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![exe](https://img-home.csdnimg.cn/images/20210720083343.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/release/download_crawler_static/64910491/bg1.jpg)
第三节 堆及其应用
![](https://csdnimg.cn/release/download_crawler_static/64910491/bg2.jpg)
一、预备知识
完全二叉树:
如果一棵深度为K二叉树,1至k-1层的结点都是满的,即满足2
i
-1
,只有最下面的一层的结点数小于2
i
-1,并且最下面一层的结点都集中
在该层最左边的若干位置,则此二叉树称为完全二叉树。
![](https://csdnimg.cn/release/download_crawler_static/64910491/bg3.jpg)
二、堆的定义
堆结构是一种数组对象,它可以被视为一棵完全二叉树。树中每
个结点与数组中存放该结点中值的那个元素相对应,如下图:
![](https://csdnimg.cn/release/download_crawler_static/64910491/bg4.jpg)
三、堆的性质
设数组A的长度为len,二叉树的结点个数为size,size≤len,则
A[i]存储二叉树中编号为i的结点值(1≤i≤size),而A[size]以后
的元素并不属于相应的堆,树的根为A[1],并且利用完全二叉树的性
质,我们很容易求第i个结点的父结点(parent(i))、左孩子结点
(left(i))、右孩子结点(right(i))的下标了,分别为:i/2、2i、2i+1
;
更重要的是,堆具有这样一个性质,对除根以外的每个结点i,
A[parent(i)]≥A[i]。即除根结点以外,所有结点的值都不得超过其
父结点的值,这样就推出,堆中的最大元素存放在根结点中,且每一
结点的子树中的结点值都小于等于该结点的值,这种堆又称为“大根
堆”;反之,对除根以外的每个结点i,A[parent(i)]≤A[i]的堆,称
为“小根堆”。
![](https://csdnimg.cn/release/download_crawler_static/64910491/bg5.jpg)
四、堆的操作
用堆的关键部分是两个操作:put操作,即往堆中加入一个元素;
get操作,即从堆中取出并删除一个元素。
1、往堆中加入一个元素的算法(put)如下:
(1)在堆尾加入一个元素,并把这个结点置为当前结点。
(2)比较当前结点和它父结点的大小
如果当前结点小于父结点,则交换它们的值,并把父结点置为当
前结点。转(2)。
如果当前结点大于等于父结点,则转(3)。
(3)结束。
剩余55页未读,继续阅读
资源评论
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/9fa259eb4c0641f08a475cfacacf34f4_qq_19309473.jpg!1)
Roc-xb
- 粉丝: 12w+
- 资源: 8221
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)