代碼
class Node {
constructor(element) {
this.element = element;
this.next = null;
}
}
class linkList {
constructor(){
this.head = new Node('head');
}
findPrevious(element) {
let currentNode = this.head;
while (currentNode.next !== null && currentNode.next.element != element) {
currentNode = currentNode.next;
}
return currentNode;
}
find(element){
let currentNode = this.head;
while (currentNode.element != element) {
currentNode = currentNode.next;
}
return currentNode;
}
insert(newElement, afterElement){
let newNode = new Node(newElement);
let currentNode = this.find(afterElement);
newNode.next = currentNode.next;
currentNode.next = newNode;
}
remove(element){
let previousNode = this.findPrevious(element);
let currentNode = this.find(element);
previousNode.next = currentNode.next;
}
display(){
let currentNode = this.head;
while (urrentNode.next !== null) {
console.log(currentNode);
currentNode = currentNode.next;
}
}
}
let cities = new linkList();
cities.insert('Conway', 'head');
cities.insert('Russellville', 'Conway');
cities.insert('Alma', 'Russellville');
cities.display();
cities.remove('Alma');
複製代碼
結果
Node {
element: 'head',
next:
Node {
element: 'Conway',
next: Node { element: 'Russellville', next: [Node] } } }
Node {
element: 'Conway',
next:
Node {
element: 'Russellville',
next: Node { element: 'Alma', next: null } } }
Node {
element: 'Russellville',
next: Node { element: 'Alma', next: null } }
複製代碼