首页 > 代码库 > js:数据结构笔记5--链表

js:数据结构笔记5--链表

数组:

  • 其他语言的数组缺陷:添加/删除数组麻烦;
  • js数组的缺点:被实现为对象,效率低;
  • 如果要实现随机访问,数组还是更好的选择;

链表:

  • 结构图:

  • 基本代码:
    function Node (elem) {   this.elem = elem;   this.next = null;}function LList() {   this.head = new Node("head");   this.find = find;   this.insert = insert;   this.findPrevious = findPrevious;   this.remove = remove;   this.display = display;}function find(item) {   var currNode = this.head;   while(currNode.elem !== item) {      currNode = currNode.next;   }   return currNode;}function insert(newElem,item) {   var newNode = new Node(newElem);   var currNode = this.find(item);   newNode.next = currNode.next;   currNode.next = newNode;}function display() {   var currNode = this.head;   while(!(currNode.next === null)) {      console.log(currNode.next.elem);      currNode = currNode.next;   }}function findPrevious(item) {   var currNode = this.head;   while(!(currNode.next === null) && (currNode.next.elem !== item)) {      currNode = currNode.next;   }   return currNode;}function remove(item) {   var prevNode = this.findPrevious(item);   if(!(prevNode.next === null)) {      prevNode.next = prevNode.next.next;   }}

操作:demo;

 

js:数据结构笔记5--链表