[理工] 資料結構 二元樹高度

看板Grad-ProbAsk作者 (RED)時間7年前 (2017/03/06 15:08), 7年前編輯推噓5(506)
留言11則, 4人參與, 最新討論串1/1
題目: 若樹的 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,不知道這樣推論對不對,感覺有點怪怪的, 因此請求前輩的協助,先謝謝各位前輩的回答 -- ╔══════════════════════════════════╗ ║╔════════════════════════════════╗║ ║║ 節電, ║║ ║║ 才是最環保、最省錢的發電! ║║ ║╚════════════════════════════════╝║ ╚══════════════════════════════════╝ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.42.114.39 ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1488784092.A.7F5.html

03/06 15:47, , 1F
沒錯,但是公式用1+2+...+2^(h)=2^(h+1) 比較好
03/06 15:47, 1F

03/06 15:48, , 2F
因為root level=0. log200取上限=h+1 , h=7
03/06 15:48, 2F
了解,謝謝h大 ※ 編輯: redspeed (114.42.114.39), 03/06/2017 15:57:09

03/06 22:27, , 3F
是取下限才對吧 我是都記取下限啦
03/06 22:27, 3F

03/06 23:08, , 4F
做法同h大
03/06 23:08, 4F

03/07 10:58, , 5F
呃呃 如果你要用取上限再減1 要先把點數加1
03/07 10:58, 5F

03/09 23:01, , 6F
也可利用補滿的方式,補到2^n - 1,以這題來說比200
03/09 23:01, 6F

03/09 23:01, , 7F
再多一點就是255,是8次方,但拿小樹來觀察會發現
03/09 23:01, 7F

03/09 23:01, , 8F
height=power-1,所以8-1=7
03/09 23:01, 8F

03/09 23:03, , 9F
取上下限的題目通常陷阱就是在這種小細節,用小圖觀
03/09 23:03, 9F

03/09 23:03, , 10F
察法會有還不錯的效果~
03/09 23:03, 10F

03/10 21:59, , 11F
這樣就不用記要取上限還是下限了
03/10 21:59, 11F
文章代碼(AID): #1OlGhSVr (Grad-ProbAsk)