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 相关文章推荐
创建一个复制UBB软件信息的链接或按钮的js代码
Jan 06 Javascript
jQuery 判断页面元素是否存在的代码
Aug 14 Javascript
Javascript 键盘keyCode键码值表
Dec 24 Javascript
jquery 新手学习常见问题解决方法
Apr 18 Javascript
js自定义事件代码说明
Jan 31 Javascript
javascript函数作用域学习示例(js作用域)
Jan 13 Javascript
chrome下jq width()方法取值为0的解决方法
May 26 Javascript
JavaScript实现自动对页面上敏感词进行屏蔽的方法
Jul 27 Javascript
jQuery多文件异步上传带进度条实例代码
Aug 16 Javascript
Node.js学习之TCP/IP数据通讯(实例讲解)
Oct 11 Javascript
jQuery获取所有父级元素及同级元素及子元素的方法(推荐)
Jan 21 jQuery
javascript用defineProperty实现简单的双向绑定方法
Apr 03 Javascript
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
JoshChen_php新手进阶高手不可或缺的规范介绍
2013/08/16 PHP
PHP在线书签系统分享
2016/01/04 PHP
Yii框架使用魔术方法实现跨文件调用功能示例
2017/05/20 PHP
javascript实现的基于金山词霸网络翻译的代码
2010/01/15 Javascript
两个比较有用的Javascript工具函数代码
2010/02/17 Javascript
javascript判断iphone/android手机横竖屏模式的函数
2011/12/20 Javascript
JS画线(实例代码)
2013/11/20 Javascript
jquery fancybox ie6不显示关闭按钮的解决办法
2013/12/25 Javascript
JS常用表单验证方法总结
2014/05/22 Javascript
简介JavaScript中POSITIVE_INFINITY值的使用
2015/06/05 Javascript
JS判断是否在微信浏览器打开的简单实例(推荐)
2016/08/24 Javascript
AngularJS实现select的ng-options功能示例
2017/07/12 Javascript
jQuery实现表格冻结顶栏效果
2017/08/20 jQuery
详解react-refetch的使用小例子
2019/02/15 Javascript
Vue 前端实现登陆拦截及axios 拦截器的使用
2019/07/17 Javascript
vue实现匀速轮播效果
2020/06/29 Javascript
跟老齐学Python之关于循环的小伎俩
2014/10/02 Python
Python读取环境变量的方法和自定义类分享
2014/11/22 Python
深入理解python函数递归和生成器
2016/06/06 Python
利用numpy和pandas处理csv文件中的时间方法
2018/04/19 Python
Python3用tkinter和PIL实现看图工具
2018/06/21 Python
Python使用import导入本地脚本及导入模块的技巧总结
2019/08/07 Python
python安装virtualenv虚拟环境步骤图文详解
2019/09/18 Python
python 使用opencv 把视频分割成图片示例
2019/12/12 Python
Python的logging模块基本用法
2020/12/24 Python
CSS3实现莲花绽放的动画效果
2020/11/06 HTML / CSS
英国户外装备商店:Ultimate Outdoors
2019/05/07 全球购物
中国跨镜手机配件批发在线商店:TVC-Mall
2019/08/20 全球购物
美国职棒大联盟的官方手套、球和头盔:Rawlings
2020/02/15 全球购物
介绍一下linux的文件系统
2015/10/06 面试题
EJB需直接实现它的业务接口或Home接口吗,请简述理由
2016/11/23 面试题
经济信息管理专业大学生求职信
2013/09/27 职场文书
师德演讲稿范文
2014/05/06 职场文书
2015年七夕情人节活动方案
2015/05/06 职场文书
创新创业项目计划书该怎样写?
2019/08/13 职场文书
MySQL时区造成时差问题
2022/04/13 MySQL