Insertion in heap using arraylist
import java.util.*;
public class InsertionInHeap {
static class Heap {
ArrayList<Integer> arr = new ArrayList<>();
public void add(int data) {
// ADD CHILD AT LAST INDEX
arr.add(data);
int x = arr.size() - 1; // CHILD'S INDEX
int par = (x - 1) / 2; // PARENT'S INDEX
while (arr.get(x) < arr.get(par)) {
// SWAP
int temp = arr.get(x);
arr.set(x, arr.get(par));
arr.set(par, temp);
// UPDATE INDICES
x = par;
par = (x - 1) / 2;
}
}
}
public static void main(String[] args) {
Heap heap = new Heap();
heap.add(2);
heap.add(3);
heap.add(4);
heap.add(5);
heap.add(10);
heap.add(1);
for (int i = 0; i < heap.arr.size(); i++) {
System.out.print(heap.arr.get(i) + " ");
}
}
}
Comments
Post a Comment