满二叉树和完全二叉树的关系
1、先明确完全二叉树的概念#
完全二叉树分为楼主所说的(图1就是了),还有一种完全二叉树是图2。图2也是完全二叉树!图2也是完全二叉树!图2也是完全二叉树!
概念:
完全二叉树分为两种:
1、最后一层没有满,那么最后一层的节点都得在左边。
2、最后一层满了,那就得全满才行,图2。 完全二叉树就这么个事儿。
2、下面说说:为什么国内大都说满二叉树一定是完全二叉树呢? 注意,我说的是国内!#
国内的满二叉树定义: 如果有h层,那么节点一定是(2^h-1)。这句话什么意思呢?上图!
每一层的节点数加起来是一个等比数列求和,在图左边。看明白了吧,每一层都满的情况下,就是国内的满二叉树了。
结论:在国内,满二叉树一定是完全二叉树,反之却不成立。
3、补充下完美二叉树和满二叉树#
完美二叉树,是每一层都满的情况,这个大都没有异议。
关键在这个满二叉树,国内定义在2中已经说了,国外的满二叉树却不是这样。
国外满二叉树:说白了判断就一个标准,看有没有度为1的节点,有则不是国外满二叉树,反之则是。简单画两个图吧
PS:国内有些地方也把满二叉树看做完美二叉树,原因就是2中所讲的了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构