Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

suppose that you want to implement the PriorityQueue so that insertion occur in

ID: 3720824 • Letter: S

Question

suppose that you want to implement the PriorityQueue so that insertion occur in constant time, but getFront requires linear time. you will use thise class definitions, where the data entering the PriorityQueue is a String and the priorities are ints.

public class ?PriorityQueue {

private PriorityNode head;

public void insert(string entry, int priority)...

public String getFront()....
}

A, write one sentence to describe how the insert method will work.

B, then implement the getFront method(which will have linear worst-case time). in your implementation, you DO NOT have to worry about items with equal priority. to remove the head node of a linked list, use the assignemnt:

head = head.getLink();

Explanation / Answer

import java.util.Comparator;

import java.util.PriorityQueue;

import java.util.Queue;

import java.util.Random;

public class PriorityQueueExample {

public static void main(String[] args) {

//natural ordering example of priority queue

Queue<Integer> integerPriorityQueue = new PriorityQueue<>(7);

Random rand = new Random();

for(int i=0;i<7;i++){

integerPriorityQueue.add(new Integer(rand.nextInt(100)));

}

for(int i=0;i<7;i++){

Integer in = integerPriorityQueue.poll();

System.out.println("Processing Integer:"+in);

}

//PriorityQueue example with Comparator

Queue<Customer> customerPriorityQueue = new PriorityQueue<>(7, idComparator);

addDataToQueue(customerPriorityQueue);

pollDataFromQueue(customerPriorityQueue);

}

//Comparator anonymous class implementation

public static Comparator<Customer> idComparator = new Comparator<Customer>(){

@Override

public int compare(Customer c1, Customer c2) {

return (int) (c1.getId() - c2.getId());

}

};

//utility method to add random data to Queue

private static void addDataToQueue(Queue<Customer> customerPriorityQueue) {

Random rand = new Random();

for(int i=0; i<7; i++){

int id = rand.nextInt(100);

customerPriorityQueue.add(new Customer(id, "Pankaj "+id));

}

}

//utility method to poll data from queue

private static void pollDataFromQueue(Queue<Customer> customerPriorityQueue) {

while(true){

Customer cust = customerPriorityQueue.poll();

if(cust == null) break;

System.out.println("Processing Customer with ID="+cust.getId());

}

}

}