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...