Assigment 6

by Jeremy Boss

HTML

<html>

  <head>
    <script src="Queue.js"></script>
  </head>

  <body>

    Enter value : <input type="number" id="myNumber" value="2">

    <button onclick="myFunction()">Sieve</button>

    <p id="myDiv"></p>
  </body>

</html>

JavaScript

function myFunction() {
  var x = document.getElementById("myNumber").value;
  //document.getElementById("demo").innerHTML = x;
  var firstQueue = createQueue(x)
  var secondQueue = new Queue();
  displayQueue(firstQueue, 0, 1)
  displayQueue(secondQueue, 0, 2)
  sieveAlgorithm(firstQueue, secondQueue)
}

function createQueue(n) {
  var queue = new Queue();
  for (i = 2; i <= n; i++)
    queue.enqueue(i);
  return queue;
}

function sieveAlgorithm(firstQueue, secondQueue) {
  var counter = 1;
  var lengthOfFirstQueue = firstQueue.getLength();
  while (firstQueue.hasElements()) {
    var firstElem = firstQueue.dequeue(0)
    console.log("Element removed:" + firstElem)
    secondQueue.enqueue(firstElem);
    for (m = 0; m < lengthOfFirstQueue; m++) {
      var value = firstQueue.currentElem(m);
      console.log("Element Value:" + value)
      if (value % firstElem == 0) {

        console.log("Element removed:" + firstQueue.dequeue(m));
      }
    }
    displayQueue(firstQueue, counter, 1)
    displayQueue(secondQueue, counter, 2)
    counter++;
  }

}

function displayQueue(queue_list, itr, qnumber) {
  var x = "";

  if (qnumber == 1)
    x = "Iteration " + itr + ": Q1 = ";
  else
    x = ",Q2 = "
  for (j = 0; j < queue_list.getLength(); j++) {
    x = x + queue_list.currentElem(j);
    x = x + " ";
  }
  var header = document.createElement("h3");
  var t;
  if (qnumber == 1) {
    var att = document.createAttribute("id");
    att.value = "itr" + itr;
    header.setAttributeNode(att);
    t = document.createTextNode(x);
    header.appendChild(t);
    document.getElementById("myDiv").appendChild(header);
  } else {
    document.getElementById("itr" + itr).innerHTML = document.getElementById("itr" + itr).innerHTML + x;
  }

}

function Queue() {
  var a = [],
    b = 0;
  this.getLength = function() {
    return a.length - b
  };
  this.isEmpty = function() {
    return 0 == a.length
  };
  this.enqueue = function(value) {
    a.push(value)
  };
  this.dequeue =...