Queue_Example

by davidjb95

HTML

Queue 1<p id='output1'></p>
Queue 2<p id='output2'></p>
<input type="textbox" id="QueueNumber" Value="input a number" />
<input type="button" id="MakeQueue" value="Make a queue" onCLick="makeQueue();" />
<input type="button" id="NextQueue" value="Next Step" onCLick="findPrime();" />

JavaScript

var Node = function(_content) {
  this.next = null;
  this.last = null;
  this.content = _content;
}
function makeQueue() {
		var num1 = document.getElementById("QueueNumber").value;
	var maxNum = parseFloat(num1);
  for(i = 2; i <= maxNum; i++){
  	queue.enqueue(i);
  document.getElementById('output1').innerHTML = queue.toString();  
  }
  //findPrime();
}
function findPrime() {
	
  var length = queue.length;
  	var divider = queue.bottom.content;
    queue.dequeue();
    queue2.enqueue(divider);
    for (i = 1; i < length; i ++){
    var divide = queue.bottom.content;
    if(divide % divider == 0){
    	queue.dequeue();
    } else {
    	queue.dequeue();
      queue.enqueue(divide);
    }
    }
  document.getElementById('output1').innerHTML = queue.toString(); 
  document.getElementById('output2').innerHTML = queue2.toString();  
}
var Queue = function() {
		this.bottom = null;
    this.top = null;
		this.length = 1;
this.enqueue = function(_content){
	if (this.bottom == null) {
      this.bottom = new Node(_content);
      this.top = this.bottom;
      return this;
    }

    var addedNode = new Node(_content);
    addedNode.last = this.top; // pointer to previous node
    this.top.next = addedNode; // current top points to new
    this.top = addedNode; // which becomes new top
    this.length++;
    return this;
  }   
this.dequeue = function() {
		this.bottom = this.bottom.next;
		if(this.length >1){
    this.length--;
    }
}
this.toString = function() {
    var str = "";
		node = this.bottom;
    while (node != null) {
      str += node.content + ":";
      node = node.next;
    }
    return str;
} 
}
var queue = new Queue();
var queue2 = new Queue();
document.getElementById('output1').innerHTML = queue.toString();