[理工] 资料结构 二元树高度

楼主: redspeed (RED)   2017-03-06 15:08:08
题目:
若树的 height 是由树根到树叶的最长路径长度,
则含有200个节点的二元树其高度至少为何?
(A) 200 (B) 7 (C) 8 (D) 9
正解:(B) 7
我的理解:
树的 height 是由树根到树叶的最长路径长度 → 树的 level 应该为 0
我想这一题应该是要问完全二元树的高度,
而完全二元树得最多节点为(2^K)-1 (K为高度)
于是我套用公式,
(2^K)-1=200
(2^K)=201
算出K值取下限大约为8
但是答案是高度 7,所以我推论高度8,要在-1 (因为树的 level 为 0),
才会得到7,不知道这样推论对不对,感觉有点怪怪的,
因此请求前辈的协助,先谢谢各位前辈的回答
作者: hibiscus520 (周末也会笑)   2017-03-06 15:47:00
没错,但是公式用1+2+...+2^(h)=2^(h+1) 比较好因为root level=0. log200取上限=h+1 , h=7
作者: mloop (mloop)   2017-03-06 22:27:00
是取下限才对吧 我是都记取下限啦
作者: yupog2003 (屁股)   2017-03-06 23:08:00
做法同h大
作者: mloop (mloop)   2017-03-07 10:58:00
呃呃 如果你要用取上限再减1 要先把点数加1
作者: alan23273850   2017-03-09 23:01:00
也可利用补满的方式,补到2^n - 1,以这题来说比200再多一点就是255,是8次方,但拿小树来观察会发现height=power-1,所以8-1=7取上下限的题目通常陷阱就是在这种小细节,用小图观察法会有还不错的效果~这样就不用记要取上限还是下限了

Links booklink

Contact Us: admin [ a t ] ucptt.com