【0、2、1、4、3、9、5、8、6、7】是以陣列形式儲存的最小堆,刪除堆頂元素0後的結果是

無鞋童鞋發表於2017-09-13

【題目】【0、2、1、4、3、9、5、8、6、7】是以陣列形式儲存的最小堆,刪除堆頂元素0後的結果是()。
 A、【2、1、4、3、9、5、8、6、7】
 B、【1、2、5、4、3、9、8、6、7】
 C、【2、3、1、4、7、9、5、8、6】
 D、【1、2、5、4、3、9、7、8、6】
分析:
  刪除堆頂,然後總是從堆尾將某個數先放置到堆頂,然後依次下調到符合完全二叉樹的要求,即每個子樹的兩個子節點都比父節點大(最小堆)。過程如下圖所示:

這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述

  需要注意例如第三張圖中,2和1在與7比較的時候,2和1先比較一次,哪個小再與7比較,如果比7小則互換,如果比7大則無需轉換。

  所以最終答案是D。

相關文章