<script> 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<arguments.length;i++) {sl.addHead(arguments[i]); } alert("未排序的链表"); sl.print(); sl.BubbleSort(); alert("已排序的链表 从小到大"); sl.print(); })("1","2","3","4") </script>