堆和二叉树的区别
以小根堆为例,堆的特点是双亲结点的关键字必然小于等于孩子结点的关键字,而两个孩子结点的关键字没有次序规定,
而二叉排序数中,每个双亲结点的关键字均大于左子树结点的关键字,均小于右子树j结点的关键字,也就是说,每个双亲结点的左右孩子的关键字有次序关系,
这样,当对两种树执行中序遍历后,二叉树会得到一个有序的序列,而堆不一定。
堆
堆是什么?堆是一种特殊的完全二叉树,只不过父亲与儿子节点间有关系。也就是首先要满足完全二叉树的定义,只有右下角可能有缺。
所有父结点都比子结点要小的完全二叉树我们称为最小堆(Java中的优先级队列PriorityQueue默认最小堆)。反之,如果所有父结点都比子结点要大,这样的完全二叉树称为最大堆。
这里与二叉搜索树的区别是搜索树中根为中间值,左小右大!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!