LONGEPASS
Q164.

50 個元素儲存於二元樹,依由上而下,由左而右之順序 。若以一個一維陣列B 儲存,下列何者是正確的?(假設陣列第一個元素其位置編號從1 開始)

電腦軟體設計共同科目 · 乙級 · Q164

難易度分析

3 / 5

本題需要運用多項二元樹的陣列索引公式進行計算,且選項中包含容易混淆的數值陷阱,要求對節點位置與層數的計算有精確的掌握。

正確答案:①這棵樹共有6 層

① 這棵樹共有6 層:二元樹的層數計算公式為 ⌊log₂n⌋ + 1,當 n=50 時,⌊log₂50⌋ + 1 = ⌊5.64⌋ + 1 = 5 + 1 = 6 層,故此選項正確。

錯誤選項解析

  • ② 這棵樹的leaf node 共有24 個,non-leaf node 共有26 個:此樹並非完整二元樹或完美二元樹,無法直接推導 leaf node 與 non-leaf node 的固定數量。在 50 個節點的二元樹中,leaf node 數量會因樹的結構而異,不一定是 24 個。
  • ③ B[35]之父節點為B[18]:在以陣列儲存二元樹時,節點 B[i] 的父節點位置公式為 ⌊i/2⌋。因此 B[35] 的父節點應為 B[⌊35/2⌋] = B[17],而非 B[18]。
  • ④ 第一個leaf node 儲存在陣列的第25 個位置:第一個 leaf node 的位置取決於樹的填充方式。在由上而下、由左而右的順序儲存中,第一個 leaf node 出現在最後一層或倒數第二層,對於 50 個節點的 6 層樹,第一個 leaf node 應在 B[26] 之後,而非第 25 個位置。
Learning Tip

"本題核心考點為二元樹的陣列表示法與層數計算。常考陷阱包括:(1) 父節點公式 ⌊i/2⌋、左子節點公式 2i、右子節點公式 2i+1 必須熟記;(2) 完整二元樹的節點數與層數關係為 n = 2^h - 1;(3) leaf node 數量在非完美二元樹中會因結構不同而變化,不可直接套用固定公式。"

學員答題分佈

①這棵樹共有6 層0%
②這棵樹的leaf node 共有24 個,non-leaf node 共有26 個0%
③B[35]之父節點為B[18]0%
④第一個leaf node 儲存在陣列的第25 個位置0%

此答題分佈是根據學員在 LongePass 模擬考等實際作答紀錄計算而成。與考友分享這道歷屆試題與詳細解析!

相似類型題目