diff --git a/src/main/java/ch/hepia/structure/BinaryHeap.java b/src/main/java/ch/hepia/structure/BinaryHeap.java index 099b0faafdc27b66738fa99005069659037fdd0b..1262837c876856fe1fe97737d71edd4ed16c2575 100644 --- a/src/main/java/ch/hepia/structure/BinaryHeap.java +++ b/src/main/java/ch/hepia/structure/BinaryHeap.java @@ -5,9 +5,55 @@ import java.util.ArrayList; import java.util.function.DoubleFunction; import java.util.function.Function; -final public class BinaryHeap { +final public class BinaryHeap +{ + final private List<Integer> lstBinaryHeap; + private BinaryHeap() + { + lstBinaryHeap=new ArrayList<Integer>(); + } + + public void push(int value) + { + + } + + private int getRightNodeIndex(int index) + { + return (2*index)+1; + } + + private int getLeftNodeIndex(int index) + { + return (2*index)+2; + } - private BinaryHeap() { + private int getParentNodeIndex(int index) + { + return (index-1) / 2; + } + + private int getRightNodeValue(int index) + { + return this.get(this.getRightNodeIndex(index)); + } + + private int getLeftNodeValue(int index) + { + return this.get(this.getLeftNodeIndex(index)); + } + + private int getParentNodeValue(int index) + { + return this.get(this.getParentNodeIndex(index)); + } + private int get(int index) + { + return this.lstBinaryHeap.get(index); + } + private void set(int index, int val) + { + this.lstBinaryHeap.set(index,val); } }