Q11

Final

by Ryan Brown

HTML

<input type="textbox" value = "A" id='input' /><input type='button' value='Enqueue' onclick='addToQueue();' />
<br/>
<input type='button' value='Dequeue' onclick='removeFromQueue();' />
<br/>
<div id='output'></div>

JavaScript

function Node(content)
	{
  	this.content = content;
  	this.next = null;
	}  

function Queue()
	{
  	this._length = 0;
  	this.head = null;
	}

Queue.prototype.enqueue = function(content)
	{
	var node = new Node(content),
   currentNode = this.head;
	if (!currentNode)
  	{
       this.head = node;
       this._length++;
     	return node;
    }

  while (currentNode.next)
   {
    currentNode = currentNode.next;
   }
   	currentNode.next = node;
    this._length++;
	};


Queue.prototype.dequeue = function()
	{
  	temp = this.head;
    this._length--;
  	this.head = this.head.next;
  return temp.content;
}


Queue.prototype.print = function()
	{
  	var string = ' ';
  	var current = this.head;
  	while (current)
    	{
    		string += current.content + " | ";
    		current = current.next;
  		}
  	return string;
	}

var queue = new Queue;

function addToQueue(){
	var input = document.getElementById("input").value;
	queue.enqueue(input);
	document.getElementById("output").innerHTML = queue.print();
}

function removeFromQueue(){
	var input = document.getElementById("input").value;
	queue.dequeue(input);
	document.getElementById("output").innerHTML = queue.print();
}