Question: //I need help with implementing my Priority Queue, I can't pass any my the tests. import java.util.ArrayList; public class PQ { private ArrayList PQArray; int
//I need help with implementing my Priority Queue, I can't pass any my the tests.
import java.util.ArrayList;
public class PQ
private ArrayList
int front, rear;
private static class PQEntry
private int priority;
private T item;
public PQEntry(T x, int n) {
priority = n;
item = x;
}
public int getPriority() {
return priority;
}
public void setPriority(int priority) {
this.priority = priority;
}
public T getItem() {
return item;
}
public void setItem(T item) {
this.item = item;
}
@Override
public String toString() {
return "(" + priority + ", " + item.toString() + ")";
}
}
public PQ() {
PQArray = new ArrayList
front=0; rear =0;
}
public boolean isEmpty() {
return size() == 0;
}
public int size() {
return PQArray.size();
}
public void enqueue(T item, int priority) {
PQEntry entry = new PQEntry(item, priority);
PQArray.set(rear,entry);
rear++;
insertionSort(PQArray);
}
private void insertionSort(ArrayList
int i, j;
for (i = 1; i < list.size(); i++) {
PQEntry tmp = list.get(i);
j = i;
while ((j > 0) && (list.get(j - 1).priority > tmp.priority)) {
list.set(j, list.get(j - 1));
j--;
}
list.set(j, tmp);
}
}
public T dequeue() {
T value = PQArray.get(front).getItem();
PQArray.remove(front);
front++;
return value;
}
@Override
public String toString() {
return PQArray.toString();
}
}
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
