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<arguments.length;i++) {sl.addHead(arguments[i]); } alert("未排序的链表"); sl.print(); sl.BubbleSort(); alert("已排序的链表 从小到大"); sl.print(); })("1","2","3","4")
相关推荐
koushr 2020-11-12
范范 2020-10-28
qiangde 2020-09-13
范范 2020-07-30
mingyunxiaohai 2020-07-19
zhaochen00 2020-10-13
Mars的自语 2020-09-27
steeven 2020-09-18
kka 2020-09-14
聚沙成塔积水成渊 2020-08-16
earthhouge 2020-08-15
aanndd 2020-08-12
bluetears 2020-07-28
horizonheart 2020-07-19
liushall 2020-07-18
bluetears 2020-07-05
fengshantao 2020-07-02
liuweixiao0 2020-06-27