二叉树的一个问题
若非空二叉树采用顺序存储结构依次将节点的数据信息存放于一个一维数组中(假设数组的第一个元素的下标为1),下表分别为i和j的两个节点处在树中同一层的条件是--
谢谢大家
这个还真是没法算,按二叉树的定义,高度为K的二叉树最多有2^k - 1个结点,这个是最多,最少呢,就是K个
如果是完全二叉树的话,就能确定在log2(i) 1层上。
举个例子你可能能更深刻地体会。
A
/
B
/
C
A
/
B C
可以看到,B和C可以在不同的层,但节点个数都只有3个,换句话说,对二叉树结点的计算是从K~2^K -1,那么,在K和2^K - 1这个区间是有多少交点呢,我们假设K为3,则3层的二叉树的节点个数从3~7不等,而如果当K=4的话,则4层的二叉树的节点个数从4~15不等,所以从这2种情况就可以得到,对于普通的二叉树而言,是无法定位当前节点在二叉树中的层数的,只有完全二叉树才能定位,如果当前结点为11,则其所在层数一定是log2(11) 1= 3。
如果还不清楚,可以再补充提问。
答:详情>>
答:详情>>