From 38cc94bf6527eb8b449d1bd99bcb6ccd91d97f17 Mon Sep 17 00:00:00 2001 From: Gasson-Betuing Danyl Date: Tue, 29 Apr 2025 18:31:01 +0200 Subject: [PATCH] =?UTF-8?q?RemoveTermin=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../graphs/algorithm/utils/BinaryHeap.java | 27 ++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) 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..90fee1f 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,32 @@ public class BinaryHeap> implements PriorityQueue { @Override public void remove(E x) throws ElementNotFoundException { - // TODO: + + int xIndex = this.array.indexOf(x); + if(xIndex < 0 || xIndex > this.currentSize-1){ + + throw new ElementNotFoundException(x); + } + + + else{ + + E last = this.array.get(this.currentSize-1); + + this.arraySet(xIndex, last); + this.currentSize--; + + int PIndex = indexParent(xIndex); + + E Parent = this.array.get(PIndex); + + + + this.percolateUp(xIndex); // les comparaisons sont déjà gérées dans les percolates et sont récursif + this.percolateDown(xIndex); + } + + } @Override