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在myeclipse中报错的解决方法
Oct 29 Javascript
用js读、写、删除Cookie代码分享及详细注释说明
Jun 05 Javascript
基于编写jQuery的无缝滚动插件
Aug 02 Javascript
node.js中的fs.readSync方法使用说明
Dec 17 Javascript
jQuery模拟新浪微博首页滚动效果的方法
Mar 11 Javascript
AngularJS 避繁就简的路由
Jul 01 Javascript
Node.js中文件操作模块File System的详细介绍
Jan 05 Javascript
基于JavaScript实现自定义滚动条
Jan 25 Javascript
在vue中实现简单页面逆传值的方法
Nov 27 Javascript
详解 javascript对象创建模式
Oct 30 Javascript
uni-app 自定义底部导航栏的实现
Dec 11 Javascript
JS hasOwnProperty()方法检测一个属性是否是对象的自有属性的方法
Jan 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
投票管理程序
2006/10/09 PHP
php实现单链表的实例代码
2013/03/22 PHP
php中通过数组进行高效随机抽取指定条记录的算法
2013/09/09 PHP
使用Thinkphp框架开发移动端接口
2015/08/05 PHP
PHP常见的6个错误提示及解决方法
2016/07/07 PHP
[原创]PHP实现字节数Byte转换为KB、MB、GB、TB的方法
2017/08/31 PHP
php5.3/5.4/5.5/5.6/7常见新增特性汇总整理
2020/02/27 PHP
Nigma vs AM BO3 第一场2.13
2021/03/10 DOTA
原生javascript实现图片滚动、延时加载功能
2015/01/12 Javascript
JavaScript Split()方法
2015/12/18 Javascript
AngularJS过滤器详解及示例代码
2016/08/16 Javascript
浅谈jQuery中hide和fadeOut的区别 show和fadeIn的区别
2016/08/18 Javascript
Vue2实现组件props双向绑定
2016/12/02 Javascript
原生js实现日期计算器功能
2017/02/17 Javascript
js实现无缝滚动图
2017/02/22 Javascript
Angular2安装angular-cli
2017/05/21 Javascript
浅谈JS对html标签的属性的干预以及对CSS样式表属性的干预
2017/06/25 Javascript
通过命令行创建vue项目的方法
2017/07/20 Javascript
JS基于开关思想实现的数组去重功能【案例】
2019/02/18 Javascript
Vue 同步异步存值取值实现案例
2020/08/05 Javascript
Python对小数进行除法运算的正确方法示例
2014/08/25 Python
利用PyInstaller将python程序.py转为.exe的方法详解
2017/05/03 Python
python实现三维拟合的方法
2018/12/29 Python
Python全局锁中如何合理运用多线程(多进程)
2019/11/06 Python
python实现UDP协议下的文件传输
2020/03/20 Python
查看已安装tensorflow版本的方法示例
2020/04/19 Python
python爬取”顶点小说网“《纯阳剑尊》的示例代码
2020/10/16 Python
Python操作word文档插入图片和表格的实例演示
2020/10/25 Python
HTML5拖拽的简单实例
2016/05/30 HTML / CSS
远程Wi-Fi宠物监控相机:Petcube
2017/04/26 全球购物
英国网络托管和域名领导者:Web Hosting UK
2017/10/15 全球购物
检察官就职演讲稿
2014/01/13 职场文书
幼儿教师寄语集锦
2014/04/03 职场文书
我的中国心演讲稿
2014/09/04 职场文书
布达拉宫的导游词
2015/02/02 职场文书
SQL中的连接查询详解
2022/06/21 SQL Server