diff --git a/Heap/Createheap.java b/Heap/Createheap.java index f0ce45e..db1fadf 100644 --- a/Heap/Createheap.java +++ b/Heap/Createheap.java @@ -12,16 +12,68 @@ public void add(int data){ int x=arr.size()-1;//x is child index int par=(x-1)/2;//par index - while(arr.get(x)arr.get(left)){ + minIdx=left; + } + if(rightarr.get(right)){ + minIdx=right; + } + if(minIdx!=i){ + //swap + int temp=arr.get(i); + arr.set(i,arr.get(minIdx)); + arr.set(minIdx,temp); + heapify(minIdx); + } + + } + public int remove(){ + int data=arr.get(0); + + int temp=arr.get(0); + arr.set(0,arr.get(arr.size()-1)); + arr.set(arr.size()-1,temp); + + arr.remove(arr.size()-1); + + heapify(0); + return data; + } + public boolean isEmpty(){ + return arr.size()==0; + } + } + + public static void main(String[] args) { + Heap h=new Heap(); + h.add(4); + h.add(3); + + h.add(1); + h.add(5); + + + while(!h.isEmpty()){ + System.out.println(h.peek()); + h.remove(); + } } }