2
我搜索了並沒有找到辦法做到這一點,如果它存在,你們能幫我怎麼做嗎?如何從最小 - 最大堆中刪除最大元素?
我搜索了並沒有找到辦法做到這一點,如果它存在,你們能幫我怎麼做嗎?如何從最小 - 最大堆中刪除最大元素?
根據您確切堆佈局,你可能有候補(假設你的根是最小元件和所述第二層是最大元素)。
選擇最大的一個,並用堆的最後一個元素替換它 - 與常規堆一樣 - 並執行向下堆修復。就像一個普通的堆一樣,從位置1或2開始,而不是0,並且像在最小最大堆中一樣降低到水平。
謝謝,我一開始就試圖做到這一點,但在我的代碼中有一個小錯字。 – lucasbibiano
@ jwpat7最小 - 最大堆不是最小堆。它用於雙端優先隊列,它確實可以有效檢索最大值。 https://en.wikipedia.org/wiki/Min-max_heap –