一道二叉树题目---顺序存储二叉树位置同层的关系

我觉得现在这考试, 明显就是在考数学, 看看这道题.

基本上就是说满/完全二叉树的层次和序号的关系.

假设第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的答案, 感觉关键点没有说到. 还有一段表述写错了, 少了一个括号.

猜你喜欢

转载自www.cnblogs.com/tekikesyo/p/10788822.html