双端队列的基本实现【数据结构与算法—TypeScript 实现】

笔记整理自 coderwhy 『TypeScript 高阶数据结构与算法』课程

特性

本质:允许队列在两端进行 入队出队 操作

设计

实现方式:基于 数组 实现

属性:

  • data:存放队列元素

方法:

  • enqueue(value):尾部入队
  • deleteBack:尾部出队
  • dequeue:头部出队
  • addFront(value):头部入队
  • peek:查看头部元素
  • isEmpty:判断队列是否为空
  • size:获取队列长度

具体代码


class ArrayDeque<T> {
  private data: T[] = [];

  // 尾部入队
  enqueue(value: T): void {
    this.data.push(value);
  }

  // 头部入队
  addFront(value: T): void {
    this.data.unshift(value);
  }

  // 头部出队
  dequeue(): T | undefined {
    return this.data.shift();
  }

  // 尾部出队
  deleteBack(): T | undefined {
    return this.data.pop();
  }

  // 查看头部元素
  peek(): T | undefined {
    return this.data[0];
  }

  // 队列是否为空
  isEmpty(): boolean {
    return this.data.length === 0;
  }

  // 获取队列长度
  get size(): number {
    return this.data.length;
  }
}

const arrayDequeue = new ArrayDeque<number>();

arrayDequeue.enqueue(123);
arrayDequeue.enqueue(234);

arrayDequeue.addFront(889);

console.log(arrayDequeue);

posted @   爱听书的程序员阿超  阅读(35)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示