Queue
by dhizzybusy
HTML
<h1>
<Center>Queue</Center>
</h1>
<br><br/>
<input type="textbox" id="lastNumber" Value="" />
<input type="button" id="createQueue" value="create Q1" onClick="createQueue();" />
<div id="output">
</div>
JavaScript
//global variable
var d = " ";
var q1 = " ";
var q2 =" ";
// Linked List
function Node(data) {
this.data = data;
this.next = null;
}
// Queue implementation using Link List
function Queue() {
this.head = null;
this.tail = null;
}
Queue.prototype.enqueue = function(data) {
var newNode = new Node(data);
if (this.head === null) {
this.head = newNode;
this.tail = newNode;
} else {
this.tail.next = newNode;
this.tail = newNode;
}
}
Queue.prototype.dequeue = function() {
var newNode;
if (this.head !== null) {
newNode = this.head.data;
this.head = this.head.next;
}
return newNode;
}
Queue.prototype.print = function() {
var curr = this.head;
var str="";
while (curr) {
console.log(curr.data);
str+= " "+ JSON.stringify(curr.data)+" ";
curr = curr.next;
}
return str;
}
//Implementation of function
var queue = new Queue();
var queue2= new Queue();
function clearDisplay()
{
//Global string d is used to hold display
d = " ";
// The div element named output is used to display output
document.getElementById("output").innerHTML = "";
}
function createQueue(){
clearDisplay();
var lastNumber =(document.getElementById("lastNumber").value);
for(a=2;a <=lastNumber;a++){
queue.enqueue(a);
}
q1="Q1: "+ queue.print();
q2="Q2: "
d=q1+"</br>" +q2;
document.getElementById("output").innerHTML =d;
var X= queue.dequeue();
queue2.enqueue(X);
var curr= queue.head
while (curr){
var temp =queue.dequeue();
if (temp % X=== 0){
curr=curr.next
}
else{
queue.enqueue(temp);
q1="Q1: "+queue.print();
q2= "Q2: " + queue2.print();
document.getElementById("output").innerHTML = q1+q2;
}
curr=curr.next;
}
}