堆(大顶堆,小顶堆),中序遍历,前序遍历,后续遍历序列
堆的概念:
-
堆中某个节点的值总是不大于或不小于其父节点的值;
-
堆总是一棵完全二叉树。
以百度的一个面试题为例:
序列{9,12,17,30,50,20,60,65,4,19}构造为堆后,堆所对应的的中序遍历序列可能为
A、65,12,30,50,9,19,20,4,,17,60
B、65,12,30,9,50,19,4,20,17,60
C、65,9,30,12,19,50,4,20,17,60
D、65,12,9,30,50,4,20,9,17,60
一、序列构造成堆:
堆构造原则:先固定已稳定的堆,再 安照从上到下,从左到右的原则堆积。
小顶堆原理:每个结点的值都小于其左孩子和右孩子结点的值
小顶堆映射的数组为
大顶堆
原理与小顶堆相似:每个结点的值都大于其左孩子和右孩子结点的值
大顶堆映射的数组为
注:蓝色为稳定状态,橙色为新增未确定状态,红色为要调整状态
二、堆所对应的的中序遍历序列
中序遍历:左中右 对构造成功的 小顶堆
中序遍历遍历结果:
答案选: B
先序遍历遍历结果:
后序遍历遍历结果:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律