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


Posted in Javascript onApril 02, 2015

此例是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 相关文章推荐
Prototype中dom对象方法汇总
Sep 17 Javascript
DIV菜单层实现代码
Nov 19 Javascript
JS HTML5 音乐天气播放器(Ajax获取天气信息)
May 26 Javascript
屏蔽IE弹出&quot;您查看的网页正在试图关闭窗口,是否关闭此窗口&quot;的方法
Dec 31 Javascript
浅谈JavaScript对象的创建方式
Jun 13 Javascript
浅谈AngularJS中ng-class的使用方法
Nov 11 Javascript
深入理解javascript的getTime()方法
Feb 16 Javascript
vuejs使用$emit和$on进行组件之间的传值的示例
Oct 04 Javascript
vue router-link传参以及参数的使用实例
Nov 10 Javascript
详解关于React-Router4.0跳转不置顶解决方案
May 10 Javascript
vue中filters 传入两个参数 / 使用两个filters的实现方法
Jul 15 Javascript
jquery实现弹窗(系统提示框)效果
Dec 10 jQuery
JavaScript实现的字符串replaceAll函数代码分享
Apr 02 #Javascript
通过JS判断联网类型和连接状态的实现代码
Apr 01 #Javascript
Javascript中数组方法汇总(推荐)
Apr 01 #Javascript
javascript闭包的理解
Apr 01 #Javascript
JavaScript数据类型之基本类型和引用类型的值
Apr 01 #Javascript
JavaScript之Object类型介绍
Apr 01 #Javascript
JS修改iframe页面背景颜色的方法
Apr 01 #Javascript
You might like
php,不用COM,生成excel文件
2006/10/09 PHP
php echo 输出字符串函数详解
2010/05/13 PHP
php下尝试使用GraphicsMagick的缩略图功能
2011/01/01 PHP
PHP 7.0.2 正式版发布
2016/01/08 PHP
PHP微信开发之文本自动回复
2016/06/23 PHP
Yii框架实现的验证码、登录及退出功能示例
2017/05/20 PHP
PHP类与对象后期静态绑定操作实例详解
2018/12/20 PHP
PHP连接SQL server数据库测试脚本运行实例
2020/08/24 PHP
php中使用array_filter()函数过滤数组实例讲解
2021/03/03 PHP
GreyBox技术总结(转)
2010/11/23 Javascript
一个jquery实现的不错的多行文字图片滚动效果
2014/09/28 Javascript
JavaScript中实现继承的三种方式和实例
2015/01/29 Javascript
关于jquery中动态增加select,事件无效的快速解决方法
2016/08/29 Javascript
jQuery实现CheckBox全选、全不选功能
2017/01/11 Javascript
Vue学习笔记进阶篇之vue-cli安装及介绍
2017/07/18 Javascript
详解vue2 $watch要注意的问题
2017/09/08 Javascript
微信小程序与后台PHP交互的方法实例分析
2018/12/10 Javascript
Vue学习之组件用法实例详解
2020/01/06 Javascript
微信小程序实现简单文字跑马灯
2020/05/26 Javascript
python发布模块的步骤分享
2014/02/21 Python
pymssql数据库操作MSSQL2005实例分析
2015/05/25 Python
Python实现命令行通讯录实例教程
2016/08/18 Python
Python基于回溯法子集树模板解决全排列问题示例
2017/09/07 Python
分享Python切分字符串的一个不错方法
2018/12/14 Python
Dlib+OpenCV深度学习人脸识别的方法示例
2019/05/14 Python
python操作文件的参数整理
2019/06/11 Python
HTML5 播放 RTSP 视频的实例代码
2019/07/29 HTML / CSS
大学毕业登记表自我鉴定
2013/10/09 职场文书
技校毕业生的自我评价
2013/12/27 职场文书
高中运动会入场词
2014/02/14 职场文书
打造高效课堂实施方案
2014/03/22 职场文书
大学生自我鉴定书
2014/03/24 职场文书
地质灾害防治方案
2014/05/14 职场文书
银行大堂经理培训心得体会
2016/01/09 职场文书
HR必备:销售经理聘用合同范本
2019/08/21 职场文书
详细分析PHP7与PHP5区别
2021/06/26 PHP