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 相关文章推荐
支持ie与FireFox的剪切板操作代码
Sep 28 Javascript
类似php的js数组的in_array函数自定义方法
Dec 27 Javascript
node.js实现逐行读取文件内容的代码
Jun 27 Javascript
JS仿JQuery选择器功能
Mar 08 Javascript
javascript 判断用户有没有操作页面
Oct 17 Javascript
解决vue attr取不到属性值的问题
Sep 18 Javascript
详解如何写出一个利于扩展的vue路由配置
May 16 Javascript
在Node.js中将SVG图像转换为PNG,JPEG,TIFF,WEBP和HEIF格式的方法
Aug 22 Javascript
layui多图上传实现删除功能的例子
Sep 23 Javascript
Vue循环中多个input绑定指定v-model实例
Aug 31 Javascript
Vue 修改网站图标的方法
Dec 31 Vue.js
JS的深浅复制详细
Oct 16 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
PHP PDOStatement:bindParam插入数据错误问题分析
2013/11/13 PHP
Symfony模板的快捷变量用法实例
2016/03/17 PHP
Ajax PHP JavaScript MySQL实现简易无刷新在线聊天室
2016/08/17 PHP
ThinkPHP框架分布式数据库连接方法详解
2017/03/14 PHP
Thinkphp 在api开发中异常返回依然是html的解决方式
2019/10/16 PHP
IE和Firefox在JavaScript应用中的兼容性探讨
2008/04/01 Javascript
JQuery 小练习(实例代码)
2009/08/07 Javascript
Dom与浏览器兼容性说明
2010/10/25 Javascript
js实现杯子倒水问题自动求解程序
2013/03/25 Javascript
JS Pro-深入面向对象的程序设计之继承的详解
2013/05/07 Javascript
超棒的响应式布局jQuery插件Freetile.js
2014/11/17 Javascript
AngularJS表单编辑提交功能实例
2015/02/13 Javascript
Shell脚本实现Linux系统和进程资源监控
2015/03/05 Javascript
jQuery 的 ready()的纯js替代方法
2016/11/20 Javascript
详解ECharts使用心得总结
2016/12/06 Javascript
关于vue-router的beforeEach无限循环的问题解决
2017/09/09 Javascript
基于JS开发微信网页录音功能的实例代码
2019/04/30 Javascript
微信小程序自定义模态弹窗组件详解
2019/12/24 Javascript
python strip()函数 介绍
2013/05/24 Python
Python实现简单拆分PDF文件的方法
2015/07/30 Python
Python实现的矩阵类实例
2017/08/22 Python
浅谈Django中的数据库模型类-models.py(一对一的关系)
2018/05/30 Python
Python Tkinter模块实现时钟功能应用示例
2018/07/23 Python
Python matplotlib画图与中文设置操作实例分析
2019/04/23 Python
python操作kafka实践的示例代码
2019/06/19 Python
python生成器用法实例详解
2019/11/22 Python
Python 2种方法求某个范围内的所有素数(质数)
2020/01/31 Python
关于pycharm 切换 python3.9 报错 ‘HTMLParser‘ object has no attribute ‘unescape‘ 的问题
2020/11/24 Python
瑞士网球商店:Tennis-Point
2020/03/12 全球购物
亚洲在线旅行门户网站:Expedia.com.hk(智游网)
2020/04/14 全球购物
实现strstr功能,即在父串中寻找子串首次出现的位置
2016/08/05 面试题
什么是Oracle的后台进程background processes?都有哪些后台进程?
2012/04/26 面试题
优秀的茶餐厅创业计划书
2014/01/03 职场文书
经典大学生求职信范文
2014/01/06 职场文书
2014年五四青年节活动方案
2014/03/29 职场文书
2015年学校教研室主任工作总结
2015/07/20 职场文书