La liste chaînée est une structure de données de base commune. Il s'agit d'une liste linéaire, mais elle ne stocke pas les données dans un ordre linéaire, mais stocke un pointeur vers le nœud suivant dans chaque nœud. Ci-dessous, nous utilisons du code JavaScript pour implémenter la structure de données de la liste chaînée
La liste chaînée est une structure de données de base commune, une liste linéaire, mais elle ne stocke pas les données dans un ordre linéaire. C'est un pointeur (. Pointeur) stocké dans chaque nœud vers le nœud suivant - Wikipédia
Ce qui précède est l'interprétation de Wikipédia de la liste chaînée. Ci-dessous, nous utilisons du code JavaScript pour implémenter la structure de données de la liste chaînée
Implémenter la classe Node pour représenter le nœud
/** * 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; } } }
Code de test
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] } } }
Ce qui précède est une implémentation simple de la structure de données d'une simple liste chaînée utilisant JavaScript : smile:
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!