二叉树、N叉树寻找上级结点


关键词

二叉树 算法

摘要

本文介绍二叉树、三叉树,直到N叉树,知道其中一个结点的编号,由它上级结点的编号的算法。

我们先来看看二叉树:

1
2,3
4,5, 6,7
8,9, 10,11, 12,13, 14,15

基本上一眼可以看出,当前结点的编号除以2就能得到上级结点的编号。
即,x=y/2

------------

再下来,我们看看三叉树:

1
2,3,4
5,6,7, 8,9,10, 11,12,13

经过简单的分析,大概可以得出如下的公式:
x = (y+1)/3

综合二叉树和三叉树的公式,看起来有点让人迷惑了。我们接着往下走。

------------

再下来,我们看看十叉树:

1
2-11
12-21 22-31 ... 102-111

如果用二叉树的公式来推,基本上推不出来。如果是用三叉的公式来推,就能得到如下公式:
x = (y+8)/10

------------

我们把几个公式写到一起来:
n=2 -> x = y/2
n=3 -> x = (y+1)/3
n=10 -> x = (y+8)/10

我们把二叉树的公式做一些变化:
n=2 -> x = (y+0)/2

所以可以总结出规律来了:

x = (y+n-2)/n

大家可以用更多的N叉树去进行一下验证。

好了,关于二叉树、N叉树寻找上级结点,本文就介绍这么,希望对大家有帮助。

 

要饭二维码

洪哥写文章很苦逼,如果本文对您略有帮助,可以扫描下方二维码支持洪哥!金额随意,先行谢过!大家的支持是我前进的动力!

文章的版权

本文属于“洪哥笔记”原创文章,转载请注明来源地址:二叉树、N叉树寻找上级结点:http://www.splaybow.com/post/erchashu-up-node-238.html

如果您在服务器运维、网络管理、网站或系统开发过程有需要提供收费服务,请加QQ:115085382!十年运维经验,帮您省钱、让您放心!
亲,如果有需要,先存起来,方便以后再看啊!加入收藏夹的话,按Ctrl+D

« PHP魔术常量__FILE__ PHP自定义函数z_ret »