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

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

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

          current = current.next; 

        } 

        node.next = current; 

        previousNode.next = node; 

        length++; 

        return true 

      } 

    }else { 

      return false 

    } 

}; 

2.4 按照节点的值查询节点位置

按照节点的值查询节点位置实现起来较量简朴,我们只要从新开始遍历,然后找到对应的值之跋文录一下索引即可:

// 查询节点地址位置 

this.indexOf = (el) => { 

    let idx = -1, 

        curIdx = -1, 

        current = head; 

    while(current) { 

      idx++ 

      if(current.el === el) { 

        curIdx = idx 

        break; 

      } 

      current = current.next; 

    } 

    return curIdx 

}; 

这里我们之以是要用idx和curIdx两个变量来处理赏罚,是由于假如用户传入的值不在链内外,那么idx的值就会有题目,以是用curIdx来担保精确性。

2.5 移除指定位置的节点

移除指定位置的节点也必要判定一下界线前提,可插入节点相同,但要留意移除之后必然要将链表长度-1,代码如下:

// 移除指定位置的元素 

this.removeAt = (pos) => { 

    // 检测界线前提 

    if(pos >=0 && pos < length) { 

      let previousNode = null, 

               current = head, 

               curIdx = 0; 

      if(pos === 0) { 

        // 假如pos为第一个元素 

        head = current.next 

      }else { 

        while(curIdx++ < pos) { 

          previousNode = current; 

(编辑:湖南网)

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

热点阅读