Assignment 7: Queue
by MimiE
HTML
<h3>Assignment 8: Queue</h3>
<label>Enter a Number for the Queue Size:</label><br><br>
<input type="textbox" id="input" value = ""/><br><br>
<input type="button" value="Start The Queue" onclick="DoSieve();" /><br/><br/>
Output: <br>
<div id="output"></div>
JavaScript
var Node = function(_data) {
this.next = null;
// this.last = null;
this.data = _data;
}
function Queue() {
this.top = null;
this.bottom = null;
}
Queue.prototype.toString = function() {
var str = "";
var node = this.top;
while (node != null) {
str += node.data + ",";
node = node.next;
}
return str;
}
Queue.prototype.isEmpty = function() {
if (this.top == null) {
return true;
}
else return false;
}
Queue.prototype.dequeue = function() {
var n;
if (this.top !== null) {
n = this.top.data;
this.top = this.top.next;
}
return n;
}
Queue.prototype.enqueue = function(_data) {
var n = new Node(_data);
if (this.top === null) {
this.top = n;
this.bottom = n;
} else {
this.bottom.next = n;
this.bottom = n;
}
}
/* var addedNode = new Node(_data);
addedNode.last = this.top;
this.top.next = addedNode;
this.top = addedNode;
this.length += 1;
return this;
}
}*/
function CreateQueuebySize(size){
var i = 2;
var q = new Queue();
for (i = 2; i < size+1; i++) {
q.enqueue(i);
}
return q;
}
function DoSieve(){
var input = Number(document.getElementById("input").value);
var q1 = CreateQueuebySize(input);
var q2 = new Queue();
var str1 = "";
var str2 = "";
var str = "";
var count = 0;
while (!q1.isEmpty()) {
str = str + "Iteration " + String(count) + "---> Q1: " + q1.toString() + " Q2: " + q2.toString() + " <br>";
document.getElementById("output").innerHTML = str;
var prime = q1.dequeue();
q2.enqueue(prime);
var temp = new Queue();
count = count + 1;
while (!q1.isEmpty()) {
var a = q1.dequeue();
if (a % prime != 0) {
temp.enqueue(a);
}
}
q1 = temp;
}
str = str + "Iteration " + String(count) + "---> Q1: " + q1.toString() + " Q2: " + q2.toString() + " <br>";
document.getElementById("output").innerHTML = str;
}