• js创建链表


    function LinkedList(){


    //Node表示要加入列表的项
    var Node=function(element){
      this.element=element;
      this.next=null;
    };

    var length=0;//存储列表项的数量
    var head=null;//head存储的是第一个节点的引用

    //向链表尾部追加元素
    this.append=function(element){
      var node=new Node(element),
        current;

      if(head===null){
        head=node;

       }else{
        current=node;

        while(current.next){
          current=current.next;
        }

        current.next=node;

      }

      length++;
    };

    //在链表的任意位置插入元素
    this.insert=function(position,element){
      if(position>=0&&position<=length){

        var node=new Node(element),
          current=head,
          previous,
          index=0;

        if(position===0){
          node.next=current;
          head=node;

        }else{
          while(index<position){
            previous=current;
            previous.next=node;
            index++;
          }
          node.next=current;
          previous.next=node;
        }

        length++;

        return true;
      }else{
        return false;
      }
    };

    //从链表中移除元素
    this.removeAt=function(position){
      if(position>-1 && position<length){
        var current=head,
          previous,
          index=0;

        if(position===0){
          head=current.next;
        }else{

          while(index<position){
            previous=current;
            current=current.next;
            index++;
          }
          previous.next=current.next;

        }

        length--;

        return current.element;
      }else{
        return null;
      }
    };

    //返回元素在链表中的位置
    this.indexOf=function(element){
      var current=head,
        index=-1;

      while(current){
        if(element===current.element){
          return index;
        }
        index++;
        current=current.next;
      }

      return -1;
    };

    //移除某个元素
    this.remove=function(element){
      var index=this.indexOf(element);
      return this.removeAt(index);
    };

    //判断链表是否为空

    this.isEmpty=function(){
      return length===0;
    };

    //返回链表的长度
    this.size=function(){
    return length;
    };

    //把LinkedList对象转换成一个字符串

    this.toString=function(){
      var current=head,
      string="";

      while(current){
        string=current.element;
        current=current.next;
      }
      return string;
    };

    };

    var list=new LinkedList();
    list.append(15);
    list.append(10);
    list.insert(1,11);
    list.removeAt(2)
    console.log(list.size());

  • 相关阅读:
    Ansible template中j2文件调用var中定义变量报错解决办法
    Ansible 获取hosts中的分组ip
    VUE UI网站汇总
    vue rules详解与实例
    Python 获取设备ip地址
    Flask && Vue 虚拟机申请平台(从开发到部署)
    Vue 把获取到的可编辑表格的值传给后端
    SQLAlchemy基本使用,创建表,增删改查
    Ansible 角色(roles)一键部署redis集群(三主三从)
    Flask 数据库相关操作
  • 原文地址:https://www.cnblogs.com/lsy26/p/5937098.html
Copyright © 2020-2023  润新知