一、节点
function Node(element){
this.element = element;
this.next = null;
}
二、链表
function LinkedList(){
this.head = new Node('head');
this.find = find;
this.insert = insert;
this.remove = remove;
this.findPre = findPre;
this.printList = printList;
}
三、节点的查找、插入、删除
function find(item){
var curNode = this.head;
while(curNode.element != item){
curNode = curNode.next;
}
return curNode;
}
function insert(newElement,item){
var newNode = new Node(newElement);
var curNode = this.find(item);
if(curNode == null){
return console.log("can't find the item");
}
newNode.next = curNode.next;
curNode.next = newNode;
}
function remove(item){
var preNode = this.findPre(item);
if(preNode.next != null){
preNode.next = preNode.next.next;
}
}
function findPre(item){
var curNode = this.head;
while(curNode.next != null && curNode.next.element != item){
curNode = curNode.next;
}
return curNode;
}
四、链表的打印
function printList(){
var curNode = this.head;
while(curNode.next != null){
console.log(curNode.next.element);
curNode = curNode.next;
}
}