OneCompiler

SJ9923D7

105
  1. Write a Program for Priority Queue Implementation of enqueue
    dequeue front rear and isEmpty function?

class QElement {
constructor(element, priority)
{
this.element = element;
this.priority = priority;
}
}
class PriorityQueue {
constructor()
{
this.items = [];
}
enqueue(element, priority)
{
var qElement = new QElement(element, priority);
var contain = false;

for (var i = 0; i < this.items.length; i++) {
if (this.items[i].priority >qElement.priority) {

this.items.splice(i, 0, qElement);
contain = true;
break;
}
}
if (!contain) {

this.items.push(qElement);
}
}
dequeue()
{
if (this.isEmpty())
return "Underflow";
return this.items.shift();
}
front()
{
if (this.isEmpty())
return "No elements in Queue";
return this.items[0];
}
rear()
{

if (this.isEmpty())
return "No elements in Queue";
return this.items[this.items.length - 1];
}
isEmpty()
{
return this.items.length == 0;
}

printPQueue()
{
var str = "";
for (var i = 0; i< this.items.length; i++)
str += this.items[i].element + "";
return str;
}
}

var priorityQueue = new PriorityQueue();
document.write("priorityQueue isEmpty : "+priorityQueue.isEmpty());
document.write("<br>");
document.write("priorityQueue front: "+priorityQueue.front());
document.write("<br>");
priorityQueue.enqueue("Sumit", 2);
priorityQueue.enqueue("Gourav", 1);
priorityQueue.enqueue("Piyush", 1);
priorityQueue.enqueue("Sunny", 2);
priorityQueue.enqueue("Sheru", 3);

document.write("priorityQueue printPQueue:
"+priorityQueue.printPQueue());
document.write("<br>");
document.write("priorityQueue front: "+priorityQueue.front().element);
document.write("<br>");
document.write("priorityQueue rear: "+priorityQueue.rear().element);
document.write("<br>");
document.write(priorityQueue.dequeue().element);

document.write("<br>");
priorityQueue.enqueue("Sunil", 2);
document.write("priorityQueue printPQueue:
"+priorityQueue.printPQueue());