js链表操作(实例讲解)


Posted in Javascript onAugust 29, 2017

如下所示:

<!doctype html>
<html lang="en">
 <head>
 <meta charset="UTF-8">
 <title>Document</title>
 <script>
  function Node(v){
    this.value=v;
    this.next=null;
  }
  function ArrayList(){
    this.head=new Node(null);
    this.tail = this.head;
    this.append=function(v){
      node = new Node(v);
      this.tail.next=node;
      this.tail=node;
    }
    this.insertAt=function(ii,v){
      node = new Node(v);
      //找到位置的节点
      tempNode=this.head;
      for(i=0;i<ii;i++){
        if(tempNode.next!=null){
          tempNode=tempNode.next;
        }else{
          break;
        }
      }
      node.next=tempNode.next;
      tempNode.next = node;
    }
    this.removeAt=function(ii){
      node1=this.head; //要删除节点的前一个节点
      for(i=0;i<ii;i++){
        if(node1.next!=null){
          node1=node1.next;
        }else{
          break;
        }
      }
      node2=node1.next;  //要删除的节点
      if(node2!=null){
        node1.next = node2.next;
        if(node2.next==null){
          this.tail=node1;
        }
      }
    }
    
  }
  function Iterator(arryList){
    this.point=arryList.head;
    this.hasNext=function(){
      if(this.point.next!=null){
        this.point=this.point.next;
        return true;
      }else{
        return false;
      }
    }
    this.next=function(){
      return this.point.value;
    }
  }
  
  var arry = new ArrayList();
  arry.append(1);
  arry.append(2);
  arry.append(3);
  arry.insertAt(1,8);
  arry.insertAt(0,9);
  arry.insertAt(100,100);
  arry.insertAt(1000,1000);
  arry.insertAt(1,200);
  arry.insertAt(200,2000);
  
  iterator = new Iterator(arry);
  while(iterator.hasNext()){
    document.write(iterator.next());
    document.write('<br/>');
  }
 </script>
 </head>
 <body>
 
 </body>
</html>

以上这篇js链表操作(实例讲解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript 图片上一张下一张链接效果代码
Mar 12 Javascript
Jquery常用技巧收集整理篇
Nov 14 Javascript
Node调试工具JSHint的安装及配置教程
May 27 Javascript
js获取IP地址的方法小结
Jul 01 Javascript
Node.js中使用mongoskin操作mongoDB实例
Sep 28 Javascript
浅谈window对象的scrollBy()方法
Jul 15 Javascript
js判断鼠标位置是否在某个div中的方法
Feb 26 Javascript
jqPlot jQuery绘图插件的使用
Jun 18 Javascript
vue分类筛选filter方法简单实例
Mar 30 Javascript
PHP 实现一种多文件上传的方法
Sep 20 Javascript
jQuery实现鼠标响应式透明度渐变动画效果示例
Feb 13 jQuery
spirngmvc js传递复杂json参数到controller的实例
Mar 29 Javascript
在页面中引入js的两种方法(推荐)
Aug 29 #Javascript
[js高手之路]设计模式系列课程-发布者,订阅者重构购物车的实例
Aug 29 #Javascript
使用canvas进行图像编辑的实例
Aug 29 #Javascript
jQuery实现锚点向下平滑滚动特效示例
Aug 29 #jQuery
js使用html2canvas实现屏幕截取的示例代码
Aug 28 #Javascript
JavaScript编写棋盘覆盖代码详解
Aug 28 #Javascript
Angular4开发解决跨域问题详解
Aug 28 #Javascript
You might like
什么是MVC,好东西啊
2007/05/03 PHP
将PHP程序中返回的JSON格式数据用gzip压缩输出的方法
2016/03/03 PHP
Mac下快速搭建PHP开发环境步骤详解
2019/05/05 PHP
根据分辩率调用不同的CSS.
2007/01/08 Javascript
JQuery jsonp 使用示例代码
2009/08/12 Javascript
浅析Js中的单引号与双引号问题
2013/11/06 Javascript
javascript实现日期格式转换
2014/12/16 Javascript
浅析Javascript中“==”与“===”的区别
2014/12/23 Javascript
js与jQuery实现checkbox复选框全选/全不选的方法
2016/01/05 Javascript
JavaScript直播评论发弹幕切图功能点集合效果代码
2016/06/26 Javascript
Javascript字符串常用方法详解
2016/07/21 Javascript
JS实现漂亮的时间选择框效果
2016/08/20 Javascript
AngularJS ng-style中使用filter
2016/09/21 Javascript
js实现图片360度旋转
2017/01/22 Javascript
原生js实现旋转木马轮播图效果
2017/02/27 Javascript
VUE中v-model和v-for指令详解
2017/06/23 Javascript
Angularjs实现上传图片预览功能
2017/09/01 Javascript
JavaScript 中的12种循环遍历方法【总结】
2018/05/31 Javascript
详解vue-cli官方脚手架配置
2018/07/20 Javascript
vue eslint简要配置教程详解
2019/07/26 Javascript
微信小程序实现抖音播放效果的实例代码
2020/04/11 Javascript
浅谈vue的第一个commit分析
2020/06/08 Javascript
Python实现高效求解素数代码实例
2015/06/30 Python
在Python的Django框架中显示对象子集的方法
2015/07/21 Python
MySQL中表的复制以及大型数据表的备份教程
2015/11/25 Python
python字符串的方法与操作大全
2018/01/30 Python
python二分法查找算法实现方法【递归与非递归】
2019/12/06 Python
传媒专业推荐信范文
2013/11/23 职场文书
区域销售经理职责
2013/12/22 职场文书
幼儿园秋游活动方案
2014/01/21 职场文书
什么是就业协议书
2014/04/17 职场文书
大学生就业求职信
2014/06/12 职场文书
数学教育专业求职信
2014/07/22 职场文书
2015年个人思想总结
2015/03/09 职场文书
go 实现简易端口扫描的示例
2021/05/22 Golang
《巫师》是美食游戏?CDPR10月将推出《巫师》官方食谱
2022/04/03 其他游戏