A6
by Ebony McCoy
HTML
<br>
<br/>Enter Content Here:
<input type="textbox" id="numNodes" value="10">
<input type="button" value="Enqueue Node" onclick="enqueueNode()">
<br/>
<br/>
<input type="button" value="Dequeue Node" onclick="dequeueNode()" />
<input type="button" value="Sieve" onclick="sieve()" />
<p id="output1"></p>
<p id="output2"></p>
<p id="output3"></p>
<p id="output4"></p>
<p id="output5"></p>
JavaScript
var Node = function(_content) {
this.content = _content;
this.last = null;
this.next = null;
return this;
}
var Queue = function(_content) {
this.head = null;
this.tail = null;
this.length = 0;
return this;
};
Queue.prototype.enqueue = function(_content) {
var node = new Node(_content);
node.content = _content;
if (this.head == null) {
this.head = node;
this.tail = node;
this.length++;
return this;
} //else if (this.head == this.tail) {
// this.tail = node;
// this.head.next = this.tail;
// this.tail.last = this.head;
// this.length++;
// return this;
// } else //{
node.last = this.tail;
this.tail.next = node;
this.tail = node;
this.length++;
return this;
//}
}
Queue.prototype.dequeue = function(_content) {
var removeNode = this.head;
if (this.head == null) {
alert("Cannot dequeue; queue is empty");
return null;
}
if (this.head == this.tail) {
this.tail = null;
this.head = null;
this.length = 0;
return removeNode;
}
this.head = this.head.next;
this.head.last = null;
this.length--;
return removeNode;
}
Queue.prototype.toString = function() {
var str = "";
var node = this.head;
while (node != null) {
str += node.content + " ";
node = node.next;
}
return str;
}
var Q1 = new Queue();
var Q2 = new Queue();
function enqueueNode() {
var numNodes = document.getElementById("numNodes").value;
Q1.enqueue(2);
for (var i = 3; i <= numNodes; i++) {
Q1.enqueue(i);
}
document.getElementById("output1").innerHTML = Q1.toString();
}
function dequeueNode() {
Q1.dequeue();
document.getElementById("output1").innerHTML = Q1.toString();
}
function sieve() {
var count = 0;
while (Q1.head != null) {
var size = Q1.length;
var currentPrime = Q1.dequeue();
Q2.enqueue(currentPrime.content);
for (var i = 1; i < size; i++) {
var currentNode = Q1.dequeue();
if (parseInt(currentNode.content) %...