当前位置:首页 > JavaScript

js 实现单链表实现栈

2026-04-07 06:36:17JavaScript

单链表实现栈的思路

使用单链表实现栈的核心在于利用链表的头部插入和删除操作,这些操作的时间复杂度均为 O(1),符合栈的后进先出(LIFO)特性。栈的主要操作包括 push(入栈)、pop(出栈)、peek(查看栈顶元素)和 isEmpty(判断栈是否为空)。

js 实现单链表实现栈

单链表节点定义

链表的每个节点需要存储数据和指向下一个节点的指针。

js 实现单链表实现栈

class Node {
  constructor(value) {
    this.value = value;
    this.next = null;
  }
}

栈的实现

定义一个 Stack 类,包含栈的基本操作方法。

class Stack {
  constructor() {
    this.top = null; // 栈顶指针
    this.size = 0;   // 栈的大小
  }

  // 入栈操作
  push(value) {
    const newNode = new Node(value);
    newNode.next = this.top;
    this.top = newNode;
    this.size++;
  }

  // 出栈操作
  pop() {
    if (this.isEmpty()) {
      return null;
    }
    const poppedValue = this.top.value;
    this.top = this.top.next;
    this.size--;
    return poppedValue;
  }

  // 查看栈顶元素
  peek() {
    if (this.isEmpty()) {
      return null;
    }
    return this.top.value;
  }

  // 判断栈是否为空
  isEmpty() {
    return this.size === 0;
  }

  // 获取栈的大小
  getSize() {
    return this.size;
  }
}

使用示例

以下是如何使用 Stack 类的示例代码:

const stack = new Stack();
stack.push(1);
stack.push(2);
stack.push(3);

console.log(stack.peek()); // 输出 3
console.log(stack.pop());  // 输出 3
console.log(stack.peek()); // 输出 2
console.log(stack.isEmpty()); // 输出 false
console.log(stack.getSize()); // 输出 2

关键点说明

  • 入栈(push):新节点插入到链表头部,并更新 top 指针指向新节点。
  • 出栈(pop):移除链表头部节点,并更新 top 指针指向下一个节点。
  • 查看栈顶(peek):返回 top 指针指向的节点的值,不修改栈。
  • 时间复杂度:所有操作均为 O(1),因为只涉及链表头部的操作。

通过单链表实现栈,可以高效地完成栈的基本操作,同时避免了数组实现中可能存在的动态扩容问题。

标签: 链表js
分享给朋友:

相关文章

js实现跳转

js实现跳转

使用 window.location 跳转 通过修改 window.location.href 或直接使用 window.location 实现页面跳转,适用于普通跳转或带参数的 URL。 // 方…

js实现vue路由

js实现vue路由

Vue路由基础实现 使用Vue Router实现前端路由需要先安装并配置路由库。Vue Router是Vue.js官方的路由管理器。 安装Vue Router: npm install vue-r…

js实现轮播

js实现轮播

实现轮播图的基本思路 轮播图的核心逻辑是通过定时切换展示的图片或内容,通常结合左右滑动按钮和指示器(小圆点)增强交互性。以下是基于原生JavaScript的实现方法。 HTML结构 构建轮播图的HT…

jquery.js

jquery.js

jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互等操作。以下是关于 jQuery.js 的核心信息和使用方法: 获…

js轮播图实现原理

js轮播图实现原理

轮播图的基本原理 轮播图通过动态切换显示的内容(图片、文本等)实现视觉上的滑动效果。核心原理是利用CSS和JavaScript控制元素的显示与隐藏,或通过变换位置实现滑动动画。 实现方法一:CSS…

php 实现单链表

php 实现单链表

单链表的基本概念 单链表是一种线性数据结构,由节点组成,每个节点包含数据域和指向下一个节点的指针域。链表的头节点是访问整个链表的入口。 单链表的节点类实现 在PHP中,可以通过类来定义链表节点。每个…