CarpenterLee / JCFInternals

深入理解Java集合框架
Other
2.23k stars 657 forks source link

關於PriorityQueue的remove情況2應該還有其他情形需要處理? #15

Open t-c-chiu opened 5 years ago

t-c-chiu commented 5 years ago

以範例那張圖為例 假設remove的是15 也就是index=5的那個元素 在siftDown後那個位置會變成9, heap不對, 因此應該還需要檢查

if (queue[i] == moved) {
    siftUp(i, moved);
 }