二叉树父子关系+推导
2021/8/2 6:06:15
本文主要是介绍二叉树父子关系+推导,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
这个是【从层序创建二叉树】中需要用到的【连接父子的两种方法】,需要根据下标连接。因此就需要【父子下标关系】。
//连接父子,两种办法:
// 1.计算父亲的下标
// 大前提:编号从0开始!
// 由2-结论,可以推出,编号j的父亲编号为(j-1)/2。
// 由2-副结论,可以推出,第j个结点的父亲是第j/2个结点。
//
// 2.计算孩子下标
// 大前提:编号从0开始!
// 结论:编号j的左孩子编号为1+2j。
// 副结论:第j个结点的左孩子是第2j个结点。
//
// [推导过程]
//
// 当前j,求第一个孩子编号:
// (1)第一个孩子编号=1+j+后面弟弟数+前面哥哥的孩子个数 (2)二叉树,前面哥哥的孩子个数=哥哥数*2
// 当前在这一层中排第几个至关重要:
// (1)第k+1个,前面k个哥哥,后面num-k-1个弟弟。(2)k = j-前i层个数 = j-(num-1)
// 第一个孩子编号 = 1 + j + (num-k-1) + k*2 = 1 + j + { num - [ j-(num-1) ] -1 } + [ j-(num-1) ] * 2
// = 1 + j + { num - [ j-num+1 ] -1 } + 2j-2num+2
// = 1 + j + { num - j + num - 1 -1 } + 2j-2num+2
// = 1 + j + { 2num - j - 2 } + 2j-2num+2
// = 1 + 2j
// 结论:编号j的左孩子编号为1+2j。【这里的j是编号,是第j+1个结点!】
//
// 副结论:第j个结点的左孩子是第2j个结点。
// 第j+1个结点的左孩子是第(2j+2)个结点。即第j个结点的左孩子是第2j个结点!
//
// 我也太棒了吧,我自己推导出来的!!!赞赞赞!!!
这篇关于二叉树父子关系+推导的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-22项目:远程温湿度检测系统
- 2024-12-21《鸿蒙HarmonyOS应用开发从入门到精通(第2版)》简介
- 2024-12-21后台管理系统开发教程:新手入门全指南
- 2024-12-21后台开发教程:新手入门及实战指南
- 2024-12-21后台综合解决方案教程:新手入门指南
- 2024-12-21接口模块封装教程:新手必备指南
- 2024-12-21请求动作封装教程:新手必看指南
- 2024-12-21RBAC的权限教程:从入门到实践
- 2024-12-21登录鉴权实战:新手入门教程
- 2024-12-21动态权限实战入门指南