链表

什么是链表?

链表是由一组节点组成的集合。

  • 实现

    我们设计的链表包含两个类。Node类用来表示节点,LinkedList类提供了插入节点、删除节点、显示列表元素的方法,以及一些辅助方法。

    • Node类

      Node类包含连个属性:element用来保存节点上的数据,next用来保存指向下一个节点的链接。

      class Node {
        constructor (element) {
          this.element = element
          this.next = null
        }
      }
      
  • LinkedList类

    class LinkedList {
        constructor () {
          this.head = new Node('head')
        }
        // 查找节点
        find (item) {
          let currNode = this.head
          while (currNode.element != item) {
            currNode = currNode.next
          }
          return currNode
        }
        // 插入
        insert (newElement, item) {
          let newNode = new Node(newElement)
          let current = this.find(item)
          newNode.next = current.next
          current.next = newNode
        }
        // 显示链表中的元素
        display () {
          let currNode = this.head
          while (currNode.next !== null) {
            console.log(currNode.next.element)
          }
          currNode = currNode.next
        }
        // 删除
        remove () {
    
        }
      }
    
  • 双向链表

    每一个节点有一个previous指向前一个节点

  • 循环链表

    创建的时候需要

    this.head.next = this.head

    插入元素之后,链表的末端指向链表的头部。

你可能感兴趣的:(链表)