队列和栈的简单实现

简单实现2个数据结构,来帮助我们更好的处理数据

基本

  • 队列(Queue)是一种先进先出(FIFO)的数据结构,通常用于按照顺序处理任务或事件。在前端中,队列可以用于实现异步函数的调用、消息通知、动画播放等场景。队列还可以和数组结合使用,通过push()方法将元素添加到队列尾部,shift() 方法将元素从队列头部取出,实现队列的基本操作。

  • 栈(Stack)是一种后进先出(LIFO)的数据结构,通常用于存储临时数据,如函数调用、表达式求值和撤销操作等。在前端中,栈可以用于实现函数调用堆栈、路由历史记录等场景。栈也可以和数组结合使用,通过push()方法将元素添加到栈顶,pop()方法将元素从栈顶取出,实现栈的基本操作。

实现

队列

复制代码
class Queue {
  constructor() {
    // 使用数组来保存队列元素
    this.items = [];
  }
  // 入队操作,将元素添加到队列末尾
  enqueue(item) {
    this.items.push(item);
  }
  // 出队操作,移除队列头部元素并返回
  dequeue() {
    return this.items.shift();
  }
  // 获取队列头部元素
  front() {
    return this.items[0];
  }
  // 判断队列是否为空
  isEmpty() {
    return this.items.length === 0;
  }
  // 获取队列长度
  size() {
    return this.items.length;
  }
}
复制代码

利用构造函数创建了一个空数组作为队列的存储结构。入队操作使用 push() 方法将元素添加到数组末尾,出队操作使用 shift() 方法移除数组头部元素并返回。获取队列头部元素直接访问数组第一个元素即可,判断队列是否为空利用数组的 length 属性,获取队列长度同样可以使用数组的 length 属性。

复制代码
class Stack {
  constructor() {
    // 使用数组来保存栈元素
    this.items = [];
  }

  // 入栈操作,将元素添加到栈顶
  push(item) {
    this.items.push(item);
  }

  // 出栈操作,移除栈顶元素并返回
  pop() {
    return this.items.pop();
  }

  // 获取栈顶元素
  peek() {
    return this.items[this.items.length - 1];
  }

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

  // 获取栈长度
  size() {
    return this.items.length;
  }
}
复制代码

同样利用构造函数创建了一个空数组作为栈的存储结构。入栈操作使用 push() 方法将元素添加到数组末尾,出栈操作使用 pop() 方法移除数组末尾元素并返回。获取栈顶元素访问数组最后一个元素即可,判断栈是否为空利用数组的 length 属性,获取栈长度同样可以使用数组的 length 属性。

posted @   养只猫叫土豆  阅读(20)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示