加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

前端进阶:链表的观念和应用

发布时间:2021-06-02 21:18:31 所属栏目:编程 来源:互联网
导读:2.1 界说链表布局 为了实现链表以及链表的操纵,起首我们必要先界说链表的根基布局,第一步就是界说节点的数据布局。我们知道一个节点会有本身的值以及指向下一

            current = current.next 

            i++ 

          } 

          previous = current.previous; 

          next = current.next; 

          previous.next = next; 

          length --; 

          return current.el 

        } 

      }else { 

        return null 

      } 

    } 

  }; 

  // 移除指定节点 

  this.remove = (el) => { 

    let idx = this.indexOf(el); 

    this.removeAt(idx); 

  }; 

  // 查询指定位置的链表元素 

  this.get = (index) => { 

    if(index < 0 || index >= length) { 

      return undefined 

    }else { 

      if(length) { 

        if(index === length - 1) { 

          return tail.el 

        } 

        let current = head, 

            i = 0; 

        while(i < index) { 

          current = current.next 

          i++ 

        } 

        return current.el 

      }else { 

        return undefined 

      } 

    } 

  } 

  // 查询节点地址位置 

  this.indexOf = (el) => { 

    let idx = -1, 

        current = head, 

        curIdx = -1; 

    while(current) { 

      idx++ 

      if(current.el === el) { 

        curIdx = idx; 

        break; 

      } 

      current = current.next; 

    } 

    return curIdx 

  }; 

  // 判定链表是否为空 

  this.isEmpty = () => { 

    return length === 0 

  }; 

  // 返回链表长度 

  this.size = () => { 

    return length 

  }; 

  // 将链表转化为数组返回 

  this.toArray = () => { 

    let current = head, 

        results = []; 

    while(current) { 

      results.push(current.el); 

      current = current.next; 

    } 

    return results 

  }; 

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读