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; 
  
}