ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

二叉树父子关系+推导

2021-08-02 02:31:24  阅读:247  来源: 互联网

标签:结点 推导 孩子 父子关系 2num num 二叉树 编号 2j


 

这个是【从层序创建二叉树】中需要用到的【连接父子的两种方法】,需要根据下标连接。因此就需要【父子下标关系】。

 

 

//连接父子,两种办法:

 

// 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个结点!

//

//   我也太棒了吧,我自己推导出来的!!!赞赞赞!!!

 

标签:结点,推导,孩子,父子关系,2num,num,二叉树,编号,2j
来源: https://www.cnblogs.com/sybil-hxl/p/15088324.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有