网络编程
位置:首页>> 网络编程>> JavaScript>> js链表操作(实例讲解)

js链表操作(实例讲解)

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

标签:js,链表

如下所示:


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

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com