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生成/解析dom的CDATA类型的字段的代码
Apr 22 Javascript
将input file的选择的文件清空的两种解决方案
Oct 21 Javascript
jQuery学习笔记之 Ajax操作篇(一) - 数据加载
Jun 23 Javascript
Js的Array数组对象详解
Feb 22 Javascript
vuex实现简易计数器
Oct 27 Javascript
AngularJS入门教程之表单校验用法示例
Nov 02 Javascript
基于javascript实现按圆形排列DIV元素(一)
Dec 02 Javascript
React Native中NavigatorIOS组件的简单使用详解
Jan 27 Javascript
基于webpack4搭建的react项目框架的方法
Jun 30 Javascript
jQuery阻止事件冒泡实例分析
Jul 03 jQuery
通过vue手动封装on、emit、off的代码详解
May 29 Javascript
详解JavaScript修改注册表的方法
Jan 05 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
php 数组排序 array_multisort与uasort的区别
2011/03/24 PHP
PHP sprintf() 函数的应用(定义和用法)
2012/06/29 PHP
php查找任何页面上的所有链接的方法
2013/12/03 PHP
php中mysql连接方式PDO使用详解
2015/02/25 PHP
详谈PHP中的密码安全性Password Hashing
2017/02/04 PHP
微信接口生成带参数的二维码
2017/07/31 PHP
thinkphp整合系列之极验滑动验证码geetest功能
2019/06/18 PHP
Avengerls vs Newbee BO3 第三场2.18
2021/03/10 DOTA
一个网马的tips实现分析
2010/11/28 Javascript
得到jQuery detach()后节点中的某个值实现代码
2013/02/05 Javascript
用javascript添加控件自定义属性解析
2013/11/25 Javascript
JavaScript程序开发之JS代码放置的位置
2016/01/15 Javascript
textarea 在浏览器中固定大小和禁止拖动的实现方法
2016/12/03 Javascript
jQuery实现html table行Tr的复制、删除、计算功能
2017/07/10 jQuery
JavaScript中附件预览功能实现详解(推荐)
2017/08/15 Javascript
JavaScript实现开关等效果
2017/09/08 Javascript
Javascript 实现 Excel 导入生成图表功能
2018/10/22 Javascript
vue基于better-scroll仿京东分类列表
2020/06/30 Javascript
Python Mysql数据库操作 Perl操作Mysql数据库
2009/01/12 Python
详解Django中的过滤器
2015/07/16 Python
详解Python的Flask框架中生成SECRET_KEY密钥的方法
2016/06/07 Python
Python利用QQ邮箱发送邮件的实现方法(分享)
2017/06/09 Python
Python实现Linux中的du命令
2017/06/12 Python
Python实现的线性回归算法示例【附csv文件下载】
2018/12/29 Python
Python多项式回归的实现方法
2019/03/11 Python
pytorch实现保证每次运行使用的随机数都相同
2020/02/20 Python
Python ArgumentParse的subparser用法说明
2020/04/20 Python
Python私有属性私有方法应用实例解析
2020/09/15 Python
Python使用xpath实现图片爬取
2020/09/16 Python
微信html5页面调用第三方位置导航的示例
2018/03/14 HTML / CSS
优秀教师工作感言
2014/02/16 职场文书
高中竞选班长演讲稿
2014/04/24 职场文书
综合测评自我评价
2015/03/06 职场文书
德能勤绩工作总结
2015/08/11 职场文书
CSS SandBox应用场景及常见问题
2022/06/25 HTML / CSS
Debian11 Xfce终端光标的颜色怎么设置?
2022/08/14 数码科技