Sorting_v1

Sorting

by dhizzybusy

HTML

<h1>
    <Center>List and Sorting </Center>
    </h1>
    <br><br/>
    <table>
<tr>
    <td> <input type="button" id="CreateList" value="Create Randomize string List " onClick="createList();" /></td>
</tr>
<tr>
    <td> <input type="button" id="MergeSort" value="MergeSort" onClick="MergeSort();" /></td>
</tr>
<tr>
    <td><input type="button" id="BubbleSort" value="BubbleSort" onClick="BubbleSort();" /></td>
</tr>

<tr>
    <td> <input type="textbox" id="StringName" placeholder="Enter String Here" /> <input type="button" id="AddString" value="Insert String" onClick="addNode();" /></td>
</tr>
    </table>

    <br/><br/> Name of Node being added:
   

    
    <div id="output">
    
    
    </div>

JavaScript

var DoubleLinkedList = function() {

    this.head = 0;
    this.tail = 0;
  this.length = 0;
  this.next=null;
  
    var LinkedListNode = function(content) {
      this.next = 0;
      this.last = 0;
      this.content = content;
    };
  
    this.add = function(content) {
      if (this.head == 0) {
        this.head = new LinkedListNode(content);
        return this.head;
      }
      if (this.tail == 0) {
        this.tail = new LinkedListNode(content);
        this.head.next = this.tail;
        this.tail.last = this.head;
        return this.tail;
      };
      this.tail.next = new LinkedListNode(content);
      this.tail.next.last = this.tail;
      this.tail = this.tail.next;
      this.tail.next = 0;
     
    return this.tail;
    
    };
  }
  
  DoubleLinkedList.prototype.length = function() {
    var i = 0;
    var node = this.head;
  
    while (node != 0) {
      i++;
      node = node.next;
    }
    return i;
  };
  DoubleLinkedList.prototype.mergeSort=function(list){
    if (list.head == 0)
        return list;
		
        var count=list.length;
        var countList=list.head;
        var leftPart=countList;
        var leftPointer=countList;
        var rightPart=null;
        var rightPointer=null;
				var mid=0;
      	console.log(leftPointer.next)

        mid= Math.floor(count/2)
        console.log(mid)
        var count2=0;

        while (count2<mid){
            count2++;
            leftPointer=leftPointer.next;
        }
        rightPart=new DoubleLinkedList();
        rightPart.add(leftPointer.next);
        leftPointer.next=null;

        return this._mergeSort(this.mergeSort(leftPart),this.mergeSort(rightPart.head))
  }
  DoubleLinkedList.prototype._mergeSort=function(left,right){
      var result= new DoubleLinkedList();
      var resultPointer=result.head;
      var pointerLeft=left;
      var pointerRight=right;

      while (pointerLeft && pointerRight){
          var tempNode=null;
          if( pointerLeft.content>...