diff --git a/be-graphes-algos/src/main/java/org/insa/graphs/algorithm/utils/BinaryHeap.java b/be-graphes-algos/src/main/java/org/insa/graphs/algorithm/utils/BinaryHeap.java index a5073cd..74bcc93 100644 --- a/be-graphes-algos/src/main/java/org/insa/graphs/algorithm/utils/BinaryHeap.java +++ b/be-graphes-algos/src/main/java/org/insa/graphs/algorithm/utils/BinaryHeap.java @@ -134,7 +134,13 @@ public class BinaryHeap> implements PriorityQueue { @Override public void remove(E x) throws ElementNotFoundException { - // TODO: + int index = this.array.indexOf(x); + if (index == -1 || index >= this.currentSize) { throw new ElementNotFoundException(x); } + E lastItem = this.array.get(--this.currentSize); + this.arraySet(index, lastItem); + this.percolateUp(index); + index = this.array.indexOf(lastItem); + this.percolateDown(index); } @Override