問題詳情

20 以一陣列 A 實作最大二元堆積(Max Binary Heap),一般方法為以 A[1] 代表根節點(Root),A[i]代表堆積中的某一個節點及儲存其數值,而 A[2i] 和 A[2i+1] 分別為 A[i] 所代表的節點之左子節點(Left Child)及右子節點(Right Child)。若目前堆積共有九個數字,且其對應的陣列之值 A[1], A[2], ...依序為 18, 10, 13, 8, 7, 5, 2, 4, 6,則在提取最大值(Extract Max)後,A[3] 之值為何?
(A)5
(B)6
(C)8
(D)13

參考答案

答案:B
難度:困難0.312169
統計:A(21),B(59),C(53),D(20),E(0)

用户評論

白龍@菜鳥公務員(107/】評論

最大堆積為一完全二元樹,且每個節點的key值皆不小於其子節點最大堆積之Delete Max: 從根節點移除最大值後,將尾端資料移去根節點,依序向下檢查子節點,若子節點該節點則互換,直到子節點比該節點小或檢查至樹葉節點為止。如題敘述,刪除18後,將6(尾端)移至root依序向下檢查,136所以互換(此時root=13,第三節點=6)繼續向下比,此時兩子節點分別為5、2皆<6,故結束調整。所求,第三節點即為6。

Fighting】評論

(A)5 (B)6 (C)8 (D)13修正題目會被倒讚阿....

【站僕】摩檸Morning】評論

原本題目:20 以一陣列 A 實作最大二元堆積(Max Binary Heap),一般方法為以 A[1] 代表根節點(Root),A[i]代表堆積中的某一個節點及儲存其數值,而 A[2i] 和 A[2i+1] 分別為 A[i] 所代表的節點之左子節點(Left Child)及右子節點(Right Child)。若目前堆積共有九個數字,且其對應的陣列之值 A[1], A[2], ...依序為 18, 10, 13, 8, 7, 5, 2, 4, 6,則在提取最大值(Extract Max)後,A[3] 之值為何?(A)5 6 (B) 8 (C) 13 (D)acbdefg 修改成為20 以一陣列 A 實作最大二元堆積(Max Binary Heap),一般方法為以 A[1] 代表根節點(Root),A[i]代表堆積中的某一個節點及儲存其數值,而 A[2i] 和 A[2i+1] 分別為 A[i] 所代表的節...