Node 為創(chuàng)建節(jié)點(diǎn)的構(gòu)造函數(shù);LinkedList 為鏈表操作函數(shù)的構(gòu)造函數(shù)。
對(duì)鏈表的操作包括:插入節(jié)點(diǎn)、移除節(jié)點(diǎn)、修改節(jié)點(diǎn)值。
插入節(jié)點(diǎn) -> 找到當(dāng)前節(jié)點(diǎn)
移除節(jié)點(diǎn) -> 找到前驅(qū)節(jié)點(diǎn)
修改節(jié)點(diǎn)值 -> 找到當(dāng)前節(jié)點(diǎn)
function Node(element) {
this.element = element
this.next = null
}
function LinkedList() {
this.head = new Node('head') //創(chuàng)建頭結(jié)點(diǎn)
}
LinkedList.prototype = {
find: function(item) { //找到當(dāng)前節(jié)點(diǎn)
let currNode = this.head
if(currNode.element !== item) {
currNode = currNode.next
}
},
findPrevious: function(item) { //找到前驅(qū)節(jié)點(diǎn)
let currNode = this.head
if(currNode.next.element !== item) {
currNode = currNode.next
}
},
insert: function(item, newItem) { //創(chuàng)建節(jié)點(diǎn)
let newNode = new Node(newItem)
let currNode = this.find(item)
newNode.next = currNode.next
currNode.next = newNode
},
remove: function(item) { //移除節(jié)點(diǎn)
let preNode = this.findPrevious(item)
preNode.next = preNode.next.next
},
edit: function(item, newItem) { //修改節(jié)點(diǎn)的值
let currNode = this.find(item)
currNode.element = newItem
}
}