zoukankan      html  css  js  c++  java
  • js---描述链表

    js描述链表

    有些情况下js的数组结构在实际使用中速度很慢,此时可以考虑用链表来代替它;

    //链表类
    function Node(element){
        this.element=element;
        this.next=null;
    }
    function LList(){
        this.head=new Node('head');
        this.find=find;
        this.insert=insert;
        this.remove=remove;
        this.display=display;
        this.findPre=findPre;
    }
    function find(item){
        var currNode=this.head;
    
        while (currNode.element!=item){
            currNode=currNode.next;
        }
        return currNode;
    }
    function findPre(item){
        var curNode=this.head;
        while (!(curNode.next==null) &&
        (curNode.next.element!=item)){
            curNode=curNode.next;
        }
        return curNode;
    }
    function remove(item){
        var preNode=this.findPre(item);
        if(preNode.next!=null){
            preNode.next=preNode.next.next
        }
    }
    function insert(newElement,item){
        var newNode=new Node(newElement);
        var current=this.find(item);
        newNode.next=current.next;
        current.next=newNode;
    }
    function display(){
        var current=this.head;
        var str=''
        while (current.next!=null){
    
            current=current.next;
            str+=current.element+"--->";
            console.log(str)
        }
    }
    
    示例
    var cities=new LList();
    cities.insert('conway','head');
    cities.insert('russellville','conway');
    cities.insert('alma','russellville');
    cities.insert('dddddd','alma');
    
    cities.display();
    //var d=cities.findPre('russellville');
    cities.remove('alma');
    
    github:https://github.com/Frankltf/js-node/tree/features-one
  • 相关阅读:
    浅谈数论
    浅谈数论
    bzoj2190 [SDOI2008]仪仗队
    bzoj2190 [SDOI2008]仪仗队
    35.QQ大数据模型
    34.函数指针数组和多线程
    33.函数指针相关问题
    32.分配数组的方式
    31.内存分配四大函数以及栈上分配内存
    30.锯齿数组
  • 原文地址:https://www.cnblogs.com/frankltf/p/7580273.html
Copyright © 2011-2022 走看看