• 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());

  • 相关阅读:
    Go链接mongodb数据库
    pymongo插入报错
    Go Slice踩坑
    windows2003服务器系统日志:查看电脑远程登录记录
    解决Ubuntu中snap安装软件下载速度龟速问题。
    winsta0,session,desktop,winlogon,default
    关于idea运行时候控制台显示中文乱码问题
    从头开始学JavaScript (十三)——Date类型
    从头开始学JavaScript (十二)——Array类型
    从头开始学JavaScript (十一)——Object类型
  • 原文地址:https://www.cnblogs.com/lsy26/p/5937098.html
Copyright © 2020-2023  润新知