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自定义构造函数的详解说明
Apr 24 Javascript
JavaScript 封装一个tab效果源码分享
Sep 15 Javascript
Bootstrap Paginator分页插件使用方法详解
May 30 Javascript
jQuery增加和删除表格项目及实现表格项目排序的方法
May 30 Javascript
js生成随机颜色方法代码分享(三种)
Dec 29 Javascript
使用jQuery操作DOM的方法小结
Feb 27 Javascript
angular或者js怎么确定选中ul中的哪几个li
Aug 16 Javascript
富文本编辑器vue2-editor实现全屏功能
May 26 Javascript
webpack4之如何编写loader的方法步骤
Jun 06 Javascript
微信小程序之侧边栏滑动实现过程解析(附完整源码)
Aug 23 Javascript
简单了解vue中的v-if和v-show的区别
Oct 08 Javascript
小程序卡片切换效果组件wxCardSwiper的实现
Feb 13 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
业余方法DIY电子管FM收音机
2021/03/02 无线电
用PHP查询域名状态whois的类
2006/11/25 PHP
php生成过去100年下拉列表的方法
2015/07/20 PHP
PHP7 错误处理机制修改
2021/03/09 PHP
js loading加载效果实现代码
2009/11/24 Javascript
实现变速回到顶部的JavaScript代码
2011/05/09 Javascript
JavaScript的模块化:封装(闭包),继承(原型) 介绍
2013/07/22 Javascript
JS中使用apply、bind实现为函数或者类传入动态个数的参数
2016/04/26 Javascript
微信小程序 wxapp视图容器 view详解
2016/10/31 Javascript
使用requirejs模块化开发多页面一个入口js的使用方式
2017/06/14 Javascript
浅谈Vue.js 组件中的v-on绑定自定义事件理解
2017/11/17 Javascript
vue+moment实现倒计时效果
2019/08/26 Javascript
vue中实现图片压缩 file文件的方法
2020/05/28 Javascript
vue路由分文件拆分管理详解
2020/08/13 Javascript
JavaScript实现多球运动效果
2020/09/07 Javascript
nodejs中的异步编程知识点详解
2021/01/17 NodeJs
[01:05:12]2014 DOTA2国际邀请赛中国区预选赛 TongFu VS CIS-GAME
2014/05/21 DOTA
Python列表推导式与生成器表达式用法示例
2018/02/08 Python
python ddt数据驱动最简实例代码
2019/02/22 Python
详解Python函数式编程—高阶函数
2019/03/29 Python
Python logging模块异步线程写日志实现过程解析
2020/06/30 Python
python脚本和网页有何区别
2020/07/02 Python
美国著名的户外用品品牌:L.L.Bean
2018/01/05 全球购物
英国皇家邮政海外旗舰店:Royal Mail
2018/02/21 全球购物
美国修容界大佬创建的个人美妆品牌:Kevyn Aucoin Beauty
2018/12/12 全球购物
领先的英国注册在线药房 :Simply Meds Online
2019/03/28 全球购物
什么是方法的重载
2013/06/24 面试题
应征英语教师求职信
2013/11/27 职场文书
电子商务网站的创业计划书
2014/01/05 职场文书
助理政工师申报材料
2014/06/03 职场文书
公司合作意向书范文
2014/07/30 职场文书
村官个人总结范文
2015/03/03 职场文书
幼儿园开学家长寄语(2016春季)
2015/12/03 职场文书
2016年党员公开承诺书格式范文
2016/03/24 职场文书
2016年小学“我们的节日·中秋节”活动总结
2016/04/05 职场文书
clear 万能清除浮动(clearfix:after)
2023/05/21 HTML / CSS