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

 更新时间:2015年04月02日 08:29:35   投稿:junjie  
这篇文章主要介绍了JavaScript实现的链表数据结构实例,本文直接给出实现代码,需要的朋友可以参考下
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

此例是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之filter_动力节点Java学院整理

    JavaScript之filter_动力节点Java学院整理

    filter也是一个常用的操作,它用于把Array的某些元素过滤掉,然后返回剩下的元素。下面通过实例代码给大家简答介绍下javascript中的filter,需要的的朋友参考下吧
    2017-06-06
  • 纯javascript制作日历控件

    纯javascript制作日历控件

    本文给大家分享的是使用纯javascript实现的日历控件的代码,笔者也是第一次写控件,摸索着前行,
    2015-07-07
  • JS中如何克隆对象(深克隆浅克隆递归克隆)

    JS中如何克隆对象(深克隆浅克隆递归克隆)

    这篇文章主要介绍了JS中如何克隆对象(深克隆浅克隆递归克隆)的全面探索,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01
  • JavaScript实现经典贪吃蛇游戏

    JavaScript实现经典贪吃蛇游戏

    这篇文章主要为大家详细介绍了JavaScript实现经典贪吃蛇游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • 给超链接添加特效鼠标移动展示提示信息且随鼠标移动

    给超链接添加特效鼠标移动展示提示信息且随鼠标移动

    需要实现这样的效果,就是给超链接添加特效当鼠标移动到上展示提示信息且提示信息跟随鼠标移动,经测试还不错,感兴趣的朋友可以参考下
    2013-10-10
  • 将文本输入框内容加入表中的js代码

    将文本输入框内容加入表中的js代码

    将文本内容添加到表格中在实际应用中很常见,下面为大家简要介绍下具体的实现过程,感兴趣的朋友可以参考下
    2013-08-08
  • javascript每日必学之条件分支

    javascript每日必学之条件分支

    javascript每日必学之条件分支,本文的主要内容就是介绍的逻辑条件分支,循环,感兴趣的小伙伴们可以参考一下
    2016-02-02
  • 微信小程序中实现双向绑定的实战过程

    微信小程序中实现双向绑定的实战过程

    最近在小程序的开发过程中,需要用到双向绑定,遇到报错才知道微信本身是不支持对象双向绑定的,折腾一番找到解决方案,下面这篇文章主要给大家介绍了关于微信小程序中实现双向绑定的相关资料,需要的朋友可以参考下
    2023-01-01
  • 微信小程序使用canvas的画图操作示例

    微信小程序使用canvas的画图操作示例

    这篇文章主要介绍了微信小程序使用canvas的画图操作,结合实例形式较为详细的分析了微信小城序基于canvas的画图操作相关实现技巧与操作注意事项,需要的朋友可以参考下
    2019-01-01
  • JS简单判断滚动条的滚动方向实现方法

    JS简单判断滚动条的滚动方向实现方法

    这篇文章主要介绍了JS简单判断滚动条的滚动方向实现方法,涉及javascript针对scrollTop事件的相关操作技巧,需要的朋友可以参考下
    2017-04-04

最新评论

?


http://www.vxiaotou.com