Heap

You might also like

Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 2

import java.util.

ArrayList;
class Main{
void heapify(ArrayList<Integer> ht, int i){
int size = ht.size();
int largest = i;
int l = 2*i+1;
int r = 2*i+2;
if(l<size && ht.get(l)> ht.get(largest))
largest = l;
if(r< size && ht.get(r) > ht.get(largest))
largest = r;

if(largest!=i){
int temp = ht.get(largest);
ht.set(largest, ht.get(i));
ht.set(i,temp);
heapify(ht,largest);
}
}
void insert(ArrayList<Integer> ht, int newNum)
{
int size = ht.size();
if(size == 0)
{
ht.add(newNum);
}
else{
ht.add(newNum);

for(int i=size/2-1; i>=0; i--)


{
heapify(ht,i);
}
}
}
void deleteNode(ArrayList<Integer> ht, int num)
{
int size = ht.size();
int i;
for(i=0; i<size; i++)
{
if(num == ht.get(i))
break;
}
int temp = ht.get(i);
ht.set(i, ht.get(size-1));
ht.set(size-1, temp);
ht.remove(size-1);
for(int j= size/2-1; j>=0; j--)
{
heapify(ht,j);
}
}
void printArray(ArrayList<Integer> array, int size)
{
for(Integer i:array)
{
System.out.println(i+"");
}
System.out.println();
}
public static void main(String args[])
{
ArrayList<Integer> array = new ArrayList<Integer>();
int size = array.size();
Main h = new Main();
h.insert(array, 3);
h.insert(array, 4);
h.insert(array, 9);
h.insert(array, 5);
h.insert(array, 2);
System.out.println("Max-Heap");
h.printArray(array, size);
h.deleteNode(array, 9);
System.out.println("After deleting an element");
h.printArray(array, size);
}
}

You might also like