一道二叉树题目---顺序存储二叉树位置同层的关系
我觉得现在这考试, 明显就是在考数学, 看看这道题.
基本上就是说满/完全二叉树的层次和序号的关系.
假设第m个节点在k层.
那么在k层,第一个节点是 2^(k-1)(从1开始,如果从0开始就是2^(k-1)-1), 最后一个元素是 2^(k-1) + (2^(k-1)-1),
也就是说2^(k-1)号 ~ 2^(k-1)+ (2^(k-1)-1) 号节点都在同一层上.
而最后一个节点 2^(k-1)+ (2^(k-1)-1) =2^k-1 的编码其实就是这颗树的节点总数,
==>2^(k-1)号 ~ 2^k-1在同一层
设m=2^(k-1) ==> k=log_2_m+1
设n=2^k-1 ===> k=log_2_(n+1)
所以只能蒙一下了. ⌊ 这个符号是取整的意思. ⌊5/3⌋=1,再比如⌊10/4⌋=2
看一下某x的答案, 感觉关键点没有说到. 还有一段表述写错了, 少了一个括号.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现