萬盛學電腦網

 萬盛學電腦網 >> 腳本專題 >> javascript >> JavaScript實現的鏈表數據結構實例

JavaScript實現的鏈表數據結構實例

   此例是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")

copyright © 萬盛學電腦網 all rights reserved