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);
     }
 }