首頁 > web前端 > js教程 > JavaScript實作的鍊錶資料結構實例_javascript技巧

JavaScript實作的鍊錶資料結構實例_javascript技巧

WBOY
發布: 2016-05-16 16:06:26
原創
1223 人瀏覽過

此範例是javascript來建立鍊錶。 。
並對此進行了排序。 。

也可以在GenericList一般鍊錶上進行擴充。
實現各種排序及增,刪,改結點。 。

複製程式碼 程式碼如下:

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

function GenericList(){
  this.head=null;
  this.current=null;
  //打出所有的鍊錶結點
  this.print= function(){
  this.current=this.head;
   while(this.current!=null){
      alert(this.current.data);
      this.current=this.current.next;
    }
 
  },
  //建立鍊錶
  this.addHead =function(t){
     
 
      var node=new Node();
      node.data=t;
      node.next=this.head;
      this.head=node;
 
  }
 
 

}


function SortList(){
//冒泡排序鍊錶
this.BubbleSort=function()
   {
     if(this.head==null||this.head.next==null)
     {
        return ;
     }
    var swapped;
    do{
   
     this.previous=null;
     this.current=this.head;

     var swapped=false;
     while(this.current.next!=null)
      {
      
       if(this.current.data-this.current.next.data>0)
        {
      
        var tmp=this.current.next;
        this.current.next=this.current.next.next;
        tmp.next=this.current;
        if(this.previous==null)
            {
               this.head=tmp;
            }
         else
           {
               this.previous.next=tmp;
           }
          this.previous=tmp;
          swapped=true;
         
      
       }
       else
        {
       
        this.previous=this.current;
        this.current=this.current.next;
       
        }
    
     }
    
     
   
    }while(swapped);
  
   }

}

SortList.prototype=new GenericList();


(function Main(){
 var sl=new  SortList();
 for(var i=0;i  {sl.addHead(arguments[i]);
 }
 alert("未排序的鍊錶");
 sl.print();
 sl.BubbleSort();
  alert("已排序的鍊錶  從小到大");
 sl.print();

})("1","2","3","4")

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板