JavaScript实现的链表数据结构实例

 更新时间:2015年04月02日 08:29:35   投稿:junjie  
这篇文章主要介绍了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")

相关文章

  • 浅谈Javascript中的函数、this以及原型

    浅谈Javascript中的函数、this以及原型

    下面小编就为大家带来一篇浅谈Javascript中的函数、this以及原型。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-10-10
  • 浅析JS异步加载进度条

    浅析JS异步加载进度条

    这篇文章主要介绍了JS异步加载进度条 的相关资料,需要的朋友可以参考下
    2016-05-05
  • 关于this和self的使用说明

    关于this和self的使用说明

    刚接触python的时候,最不习惯的事情,就是每个方法都要加一个self。无论Javascript还是C#,都直接一个this搞定,干嘛非要加一个变量self。
    2010-08-08
  • javascript 绘制矩形框

    javascript 绘制矩形框

    今天读John Resig的Pro Javascript Techniques时候看到他书上给的一个关于drag and drop的例子,我做的第二件事就是js模拟用鼠标拖出矩形框,代码很简单
    2009-04-04
  • javascript:json数据的页面绑定示例代码

    javascript:json数据的页面绑定示例代码

    本篇文章主要是对javascript:json数据的页面绑定示例代码进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2014-01-01
  • 使用微信小程序显示用户当前地理位置的详细代码

    使用微信小程序显示用户当前地理位置的详细代码

    这篇文章主要介绍了使用微信小程序显示用户当前地理位置的详细代码,在微信小程序的开发中不可避免的会遇到需要显示用户地理位置的操作,本文将简单介绍如何在微信小程序中显示用户当前的地理位置,需要的朋友可以参考下
    2022-06-06
  • layer关闭当前窗口页面以及确认取消按钮的方法

    layer关闭当前窗口页面以及确认取消按钮的方法

    今天小编就为大家分享一篇layer关闭当前窗口页面以及确认取消按钮的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-09-09
  • SVG实现时钟效果

    SVG实现时钟效果

    这篇文章主要为大家详细介绍了SVG实现时钟效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-07-07
  • 通过隐藏iframe实现文件下载的js方法介绍

    通过隐藏iframe实现文件下载的js方法介绍

    本篇文章主要是对通过隐藏iframe实现文件下载的js方法进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2014-02-02
  • 兼容浏览器的js事件绑定函数(详解)

    兼容浏览器的js事件绑定函数(详解)

    下面小编就为大家带来一篇兼容浏览器的js事件绑定函数(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05

最新评论