js链表操作(实例讲解)

作者:迷茫小男孩 时间:2024-04-17 10:37:33 

如下所示:


<!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>

来源:http://www.cnblogs.com/yu-hailong/archive/2017/08/28/7445750.html

标签:js,链表
0
投稿

猜你喜欢

  • 对Python中一维向量和一维向量转置相乘的方法详解

    2022-01-24 12:44:14
  • 有关Oracle数据库的备份情况

    2010-07-30 13:21:00
  • Python队列、进程间通信、线程案例

    2021-10-23 16:43:03
  • Python数据类型详解(三)元祖:tuple

    2021-05-17 07:49:14
  • PIL.Image.open和cv2.imread的比较与相互转换的方法

    2021-05-06 22:09:38
  • php curl选项列表(超详细)

    2023-07-18 15:19:32
  • Javascript Ajax异步读取RSS文档具体实现

    2024-05-09 10:36:56
  • 全文译稿 Windows Internet Explorer 8 性能优化白皮书

    2010-04-23 20:13:00
  • PyCharm-错误-找不到指定文件python.exe的解决方法

    2022-04-20 00:48:10
  • django 通过ajax完成邮箱用户注册、激活账号的方法

    2022-02-19 05:59:57
  • 从语义开始–概念、意义、实践

    2010-06-13 18:06:00
  • python自动化测试通过日志3分钟定位bug

    2021-09-12 10:11:19
  • 如何用定值 Cookie 实现反爬详解

    2023-11-15 23:32:18
  • asp分类算法要解决的问题

    2009-09-10 16:49:00
  • Python scrapy爬取小说代码案例详解

    2021-09-18 17:03:52
  • on error goto (Vbscript)和try catch

    2008-08-04 13:22:00
  • GoLang中panic与recover函数以及defer语句超详细讲解

    2024-03-22 09:41:37
  • 使用postman进行接口自动化测试

    2022-11-09 08:36:35
  • Python设置默认编码为utf8的方法

    2023-09-23 16:08:34
  • Mysql存储过程中游标的用法实例

    2024-01-22 14:59:10
  • asp之家 网络编程 m.aspxhome.com