C++之堆的详解

目录

堆的定义

堆的性质

堆的分类

大根堆

小根堆


堆的定义

堆(heaps) 是一种特殊的数据组织方式,STL 中的 priority_queue 容器适配器底层就是采用堆来组织数据存储的。

堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收。

堆的性质

  • 堆中某个节点的值总是不大于或不小于其父节点的值;
  • 堆总是一棵完全二叉树。

堆的分类

堆分为大根堆和小根堆。

大根堆

  • 每个节点最多有两个子节点。
  • 根节点的键值是所有堆节点中键值最大的,并且每个节点的值比儿子节点大。
  • 堆的创建必须是一个二叉树。

小根堆

  • 每个节点最多有两个子节点。
  • 根节点的键值是所有堆节点中键值最小的,并且每个节点的值比儿子节点小。
  • 堆的创建必须是一个二叉树。

其余有关堆的介绍可以点击堆的应用之堆排序

关于堆的介绍就到这里,希望对各位有用,谢谢大家。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值