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
  • 相关阅读:
    Eclipse 的SVN 插件
    linux克隆后修配置
    SVN服务器端环境搭建步骤
    Linux安装 jdk、tomcat、eclipse、mysql
    Linux RPM和YUM
    linux进程管理
    day21
    day20
    day18 作业
    day 19
  • 原文地址:https://www.cnblogs.com/frankltf/p/7580273.html
Copyright © 2011-2022 走看看