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) %...