堆(了解、判断小堆/大堆/不是堆)c++

server/2025/1/31 22:58:26/
堆(heap),是⼀棵有着特殊性质的完全⼆叉树,可以⽤来实现优先级队列(priority queue),
堆需要满⾜以下性质: 
  1. 是⼀棵完全⼆叉树; 
  2.  对于树中每个结点,如果存在⼦树,那么该结点的权值⼤于等于(或⼩于等于)⼦树中所有结点的权值。 

如果根结点⼤于等于⼦树结点的权值,称为⼤根堆;反之,称为⼩根堆( 比如99这个结点,有左右子树,且99这个值大于左子树所有节点的值,也大于右子树所有节点的值)

              

练习:判断下图中的二叉树是否是堆。如果是堆,判断是大根堆还是小根堆

               

(1)可大可小(2)大根堆(3)不是堆(40比34大)(4)小根堆(5)不是堆(不是完全二叉树)(6)不是堆(28比29小)


http://www.ppmy.cn/server/163899.html

相关文章

vim操作简要记录

操作容易忘记,记录一下基本使用的 :wq保存退出 :w :q :q! :wq! i I a A 方向键 h左 j下 k上 l右 dd删除方行(这其实是剪切行操作,不过一般用作删除,长按可删除,不过按.执行上一次操作删除更快) .执行上…

SpringCloud之服务间通信超时:突破微服务的“时间枷锁”

目录 引言一、通信超时的 “导火索”(一)网络不稳定(二)服务性能瓶颈(三)配置参数不合理 二、实战!解决超时的 “组合拳”(一)优化超时配置参数1. Ribbon 配置2. Feign 配…

ECMAScript--promise的使用

​ 一、Promise的简介 Promise是一个代理,它所代表的值在创建时并不一定是已知的。借助Promise,我们能够将处理程序与异步操作最终的成功值或者失败原因关联起来。这一特性使得异步方法可以像同步方法那样返回值,不同之处在于异步方法不会立…

R语言学习笔记之高效数据操作

一、概要 数据操作是R语言的一大优势,用户可以利用基本包或者拓展包在R语言中进行复杂的数据操作,包括排序、更新、分组汇总等。R数据操作包:data.table和tidyfst两个扩展包。 data.table是当前R中处理数据最快的工具,可以实现快…

SpringBoot AOP 和 事务

SpringBoot 整合 AOP 动态代理技术 JDK 动态代理 JDK 动态代理是 Java 自带的一种代理方式。它要求目标类必须有接口,基于这个接口,JDK 在运行时会动态生成一个代理对象。这个代理对象和目标对象就像 “拜把子” 的兄弟,因为它们都实现了相同…

MySQL--》深度解析InnoDB引擎的存储与事务机制

目录 InnoDB架构 事务原理 MVCC InnoDB架构 从MySQL5.5版本开始默认使用InnoDB存储引擎,它擅长进行事务处理,具有崩溃恢复的特性,在日常开发中使用非常广泛,其逻辑存储结构图如下所示, 下面是InnoDB架构图&#xf…

毕业设计--具有车流量检测功能的智能交通灯设计

摘要: 随着21世纪机动车保有量的持续增加,城市交通拥堵已成为一个日益严重的问题。传统的固定绿灯时长方案导致了大量的时间浪费和交通拥堵。为解决这一问题,本文设计了一款智能交通灯系统,利用车流量检测功能和先进的算法实现了…

小白爬虫冒险之反“反爬”:无限debugger、禁用开发者工具、干扰控制台...(持续更新)

背景浅谈 小白踏足JS逆向领域也有一年了,对于逆向这个需求呢主要要求就是让我们去破解**“反爬机制”**,即反“反爬”,脚本处理层面一般都是decipher网站对request设置的cipher,比如破解一个DES/AES加密拿到key。这篇文章先不去谈…