JS 实现链表

Node 为创建节点的构造函数;LinkedList 为链表操作函数的构造函数。
对链表的操作包括:插入节点、移除节点、修改节点值。
插入节点 -> 找到当前节点
移除节点 -> 找到前驱节点
修改节点值 -> 找到当前节点

function Node(element) {
    this.element = element
    this.next = null
}

function LinkedList() {
    this.head = new Node('head') //创建头结点
}

LinkedList.prototype = {
    find: function(item) { //找到当前节点
        let currNode = this.head
        if(currNode.element !== item) {
            currNode = currNode.next
        }
    },
    findPrevious: function(item) { //找到前驱节点
       let currNode = this.head
       if(currNode.next.element !== item) {
            currNode = currNode.next
       }
     },
    insert: function(item, newItem) { //创建节点
        let newNode = new Node(newItem)
        let currNode = this.find(item)
        newNode.next = currNode.next
        currNode.next = newNode
    },
    remove: function(item) { //移除节点
        let preNode = this.findPrevious(item)
        preNode.next = preNode.next.next
    },
    edit: function(item, newItem) { //修改节点的值
        let currNode = this.find(item)
        currNode.element = newItem
    }
}

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