minmax-heap

    0熱度

    1回答

    我正在實現具有popMin和popMax方法的隊列類。到目前爲止,我使用兩個優先級隊列工作,但即使刪除是log(n)時間,我也必須從另一個隊列中刪除,這是線性的。我知道一個雙重優先級隊列可以使用二進制堆實現,但是如果我沒有弄錯需要線性時間來構建呢?有沒有辦法我可以更有效地做到這一點?我也只能使用Java庫類。 static class MinMaxQueue { PriorityQue

    5熱度

    1回答

    我正在實現最小最大值堆,這是一種雙端優先級隊列。你可以看這裏here關於最小最大堆的更多信息。 插入和刪除分鐘操作的代碼很簡單,可以在網上獲得。但是,我也試圖在最小 - 最大堆上執行delete-max操作。最初,我覺得min-max堆中的delete-max與max-min堆中的delete-max相同(如果我們考慮包含最大元素的min-max堆的子樹,它類似於max-分鐘堆)。因此,實現將很簡