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
}
}