javascript中的链表

定义一个从链表中移除元素的方法 removeAt和remove方法

  1. removeAt方法的实现
    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;
                }
                    //将previous与current的下一项链接起来;跳过current,从而移除它
                    previous,next = current.next;
                }  
                length--;
                return current.element;
                 
        }else{
            return null;
        }
    };
2.remove方法
this.remove = function(element){
    var index = this.indexOf(element);
    return this.removeAt(index);  
};

toString方法会把LinkkedList对象转化成一个字符串 3. toString方法的实现

this.toString = function (){
      var current = head,
             string = ' ';
       while(current){
             string = current.element;
            current = current.next;
    }
          return  string;
};

indexOf方法接受一个元素的值,如果在列表中找到它,就返回元素的位置,否则返回-1 4.indexOf方法的实现

this.indexOf = function(element){
    var current = head,
           index = -1;
    while(current){
        if(element ===current.element){
            return  index;
        }
        index++;
        current = current.next;
    }
  return  -1;
};

转载于:https://my.oschina.net/u/2897423/blog/846866

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值