Heim > Web-Frontend > js-Tutorial > JavaScript-Tutorial – Implementierung der Datenstruktur verknüpfter Listen

JavaScript-Tutorial – Implementierung der Datenstruktur verknüpfter Listen

巴扎黑
Freigeben: 2017-08-06 15:34:08
Original
1401 Leute haben es durchsucht

Verknüpfte Liste ist eine übliche Basisdatenstruktur, aber sie speichert Daten nicht in linearer Reihenfolge, sondern speichert einen Zeiger auf den nächsten Knoten. Im Folgenden verwenden wir JavaScript-Code, um die Datenstruktur der verknüpften Liste zu implementieren.

Die verknüpfte Liste ist eine allgemeine Grunddatenstruktur, eine lineare Liste, speichert jedoch keine Daten in linearer Reihenfolge. Es handelt sich um einen Zeiger (. In jedem Knoten gespeicherter Zeiger zum nächsten Knoten - Wikipedia

Das Obige ist Wikipedias Interpretation der verknüpften Liste. Im Folgenden verwenden wir JavaScript-Code, um die Datenstruktur der verknüpften Liste zu implementieren

Implementieren Sie die Node-Klasse, um den Knoten darzustellen


/**
 * Node 类用来表示节点
 * element 用来保存节点上的数据
 * next 用来保存指向下一个节点的链接
 */
function Node(element) {
 this.element = element;
 this.next = null;
}
LList类提供对链表操作的方法
/**
 * LList 类提供了对链表进行操作的方法
 * 链表只有一个属性,
 * 使用一个 Node 对象来保存该链表的头节点。
 */
class LList {
 constructor() {
  this.head = new Node('head');
 }
 // 查找节点
 find(item) {
  let currNode = this.head;
  while(currNode.element !== item) {
   currNode = currNode.next;
  }
  return currNode;
 }
 // 查找前一个节点
 findPre(item) {
  if(item === 'head') throw new Error('now is head!');
  let currNode = this.head;
  while (currNode.next && currNode.next.element !== item) {
   currNode = currNode.next;
  }
  return currNode;
 }
 // 插入新节点
 insert(newElement, item) {
  let newNode = new Node(newElement);
  let currNode = this.find(item);
  newNode.next = currNode.next;
  currNode.next = newNode;
 }
 // 删除一个节点
 remove(item) {
  let preNode = this.findPre(item);
  if(preNode.next !== null) {
   preNode.next = preNode.next.next;
  }
 }
 // 显示链表中的元素
 display() {
  let currNode = this.head;
  while(currNode.next !== null) {
   console.log(currNode.next.element);
   currNode = currNode.next;
  }
 }
}
Nach dem Login kopieren

Testcode


const list = new LList(); 
// LList { head: Node { element: 'head', next: null } }
list.insert('0', 'head');
list.insert('1', '0');
list.insert('2', '1');
list.insert('3', '2');
list.remove('1');
console.log(list); 
// LList { head: Node { element: 'head', next: Node { element: '0', next: [Object] } } }
console.log(list.display()); // 0 2 3
console.log(list.findPre('1')); 
// Node { element: '0', next: Node { element: '1', next: Node { element: '2', next: [Object] } } }
Nach dem Login kopieren

Das Obige ist eine einfache Implementierung der Datenstruktur einer einfachen verknüpften Liste mit JavaScript: smile:

Das obige ist der detaillierte Inhalt vonJavaScript-Tutorial – Implementierung der Datenstruktur verknüpfter Listen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage