JavaScript 实现链表数据结构详解

作者:闭包旅人时间:2026-10-22 06:38:55浏览:332

本文介绍如何使用 JavaScript 实现链表数据结构。通过定义 Node 类表示节点,包含元素和指向下一节点的指针;构建 LList 类提供插入、查找、删除及显示等功能。文章包含完整代码示例与测试用例,帮助开发者理解链表的基本原理与具体实现方式。

链表基本概念

链表(Linked list)是一种常见的基础数据结构,属于线性表的一种。与数组不同,链表不要求数据在内存中连续存储,而是通过每个节点中保存指向下一个节点的指针(Pointer)来维持线性关系。

基于上述对链表的定义,接下来我们将使用 JavaScript 语言编写代码,具体实现链表的数据结构。

节点类 Node 的实现

首先,我们需要实现一个 Node 类,用于表示链表中的单个节点。

链表类 LList 核心方法


/**
 * 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;
  }
 }
}

测试代码与运行示例

以下是用于测试上述实现的代码片段。

测试用例输出分析


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] } } }

实现总结

以上即为使用 JavaScript 对简单链表数据结构的完整实现。

总结

以上内容介绍了使用 JavaScript 实现链表数据结构的方法,希望能为读者提供帮助。如有任何疑问,欢迎留言,小编会及时回复。感谢大家对本站的支持!

作者最新文章