RB_JSFiddle_A4

by Ryan Brown

HTML

<body>
  <form id="formski"><br>
      <label for="Number">New Value For Chain:</label> <input id="newValue" type="text" />            <br><br>
       <input type="button" value="Enter" id="onClick">
   </form>
     <br>
     <br>
   <div id="display">
   </div>
    <p id="conect"></p>
    <p id="connect2"></p>
    <p id="connect3"></p>
</body>

CSS

#formski {
  width: 15em;
  height: 5em;
  color: darkblue;
}

JavaScript

document.getElementById("onClick").onclick = function() {insert();}

function insert()
	{
		var newValue = document.getElementById('newValue').value;  
 		 	chain.addLink(newValue);
 		  chain.quickSort(chain.linkStorage);
    	chain.printBubbleSort();
    	chain.qsort();
 			
      document.getElementById("connect").innerHTML = "<br> Last Link: " + chain.lastLink().asString();
	}   

function Link(_id, _value, _next)
	{
    this.id = _id; 
    this.value = _value;  
    this.next = _next; 
	}

Link.prototype.asString = function ()
	{
    return "Link: " + this.id +
        			" Value: " + this.value +
        					" Points To: " + this.next + "<br/>";
	}

function Chain(_firstValue)
	{ 
    this.head = new Link(0, _firstValue, null);
    this.linkStorage = [];  
    this.linkStorage.push(this.head);
	}

Object.defineProperty
	(Chain.prototype, 'length', 
		{
    			get: function ()
        		{
        			return this.linkStorage.length;
    				}
			}
    )

Chain.prototype.lastLink = function ()
	{
  		for (link in this.linkStorage)
      	{
        		if (this.linkStorage[link].next == link_id)
            	{
            		return this.linkStorage[link];
        			}
   			 }
    	return -1
	}

Chain.prototype.addLink = function (_linkValue)
	{
  	link_id = this.length;
    prev_link = this.linkStorage[link_id - 1];
    	this.linkStorage.push(new Link(link_id, _linkValue, link_id + 1));
    prev_link.next = link_id;
	}

Chain.prototype.bubbleSort = function (a, par)
	{
    var swapped;
    	do 
      	{
        	swapped = false;
        		for (var i=0; i < a.length-1; i++) 
            	{
            		if (a[i].value > a[i+1].value) 
                	{
              	  	var temp = a[i];
                			a[i] = a[i+1];
                			a[i+1] = temp;
                			swapped = true;
           				}
        			}
    		}
    	while (swapped);    
		}

Chain.prototype.quickSort = function(qsort)
	{
    qsort.sort(CompareForSort);
    	function...