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 相关文章推荐
img onload事件绑定各浏览器均可执行
Dec 19 Javascript
js 实现在离开页面时提醒未保存的信息(减少用户重复操作)
Jan 16 Javascript
JS中eval函数的使用示例
Jul 21 Javascript
使用JavaScript开发IE浏览器本地插件实例
Feb 18 Javascript
javascript实现不同颜色Tab标签切换效果
Apr 27 Javascript
JS/jQuery判断DOM节点是否存在的简单方法
Nov 24 Javascript
Javascript中 toFixed四舍六入方法
Aug 21 Javascript
vuejs使用$emit和$on进行组件之间的传值的示例
Oct 04 Javascript
JS 数组随机洗牌的实例代码
Sep 12 Javascript
Angular8 Http拦截器简单使用教程
Aug 20 Javascript
Vue-cli3多页面配置详解
Mar 22 Javascript
Python版实现微信公众号扫码登陆
May 28 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
模拟OICQ的实现思路和核心程序(一)
2006/10/09 PHP
收藏的一个php小偷的核心程序
2007/04/09 PHP
有关php运算符的知识大全
2011/11/03 PHP
php在window iis的莫名问题的测试方法
2013/05/14 PHP
PHP常用正则表达式集锦
2014/08/17 PHP
php集成套件服务器xampp安装使用教程(适合第一次玩PHP的新手)
2015/06/03 PHP
ThinkPHP中数据操作案例分析
2015/09/27 PHP
joomla实现注册用户添加新字段的方法
2016/05/05 PHP
php微信公众号开发之音乐信息
2018/10/20 PHP
php文件包含的几种方式总结
2019/09/19 PHP
Laravel框架控制器,视图及模型操作图文详解
2019/12/04 PHP
JQuery开发的数独游戏代码
2010/10/29 Javascript
JS无法捕获滚动条上的mouse up事件的原因猜想
2012/03/21 Javascript
图片上传插件jquery.uploadify详解
2013/11/15 Javascript
JS实现往下不断流动网页背景的方法
2015/02/27 Javascript
50 个 jQuery 插件可将你的网站带到另外一个高度
2016/04/26 Javascript
jquery checkbox无法用attr()二次勾选问题的解决方法
2016/07/22 Javascript
深入理解JS中的Function.prototype.bind()方法
2016/10/11 Javascript
jQuery Form表单取值的方法
2017/01/11 Javascript
js+canvas实现两张图片合并成一张图片的方法
2019/11/01 Javascript
分享Angular http interceptors 拦截器使用(推荐)
2019/11/10 Javascript
JavaScript事件冒泡机制原理实例解析
2020/01/14 Javascript
Python虚拟环境Virtualenv使用教程
2015/05/18 Python
解决python爬虫中有中文的url问题
2018/05/11 Python
python调用百度REST API实现语音识别
2018/08/30 Python
Python3 利用requests 库进行post携带账号密码请求数据的方法
2018/10/26 Python
Pycharm新建模板默认添加个人信息的实例
2019/07/15 Python
Python一键安装全部依赖包的方法
2019/08/12 Python
python 插入日期数据到Oracle实例
2020/03/02 Python
Python面向对象程序设计之静态方法、类方法、属性方法原理与用法分析
2020/03/23 Python
CSS3实现各种图形的示例代码
2016/10/19 HTML / CSS
连卡佛中国官网:Lane Crawford中文站
2018/01/27 全球购物
商场端午节活动方案
2014/01/29 职场文书
人力资源经理的岗位职责
2014/03/02 职场文书
python-for x in range的用法(注意要点、细节)
2021/05/10 Python
pytorch Dropout过拟合的操作
2021/05/27 Python