Skip to content

队列

  • 一种线性结构
  • 一种先进先出的数据结构
  • 相比数组,队列对应的操作是数组的子集
  • 只能从一端(队尾)添加元素,只能从另外一端(队首)取出元素

数组队列接口如下:

typescript
interface ArrayQueueInterface<T> {
  size: number
  isEmpty: boolean

  enqueue: (element: T) => void
  dequeue: () => T | undefined
  getFront: () => T | undefined
  clear: () => void
}

数组队列具体实现如下:

typescript
class ArrayQueue<T> implements ArrayQueueInterface<T> {
  #queue: T[] = []

  get size(): number {
    return this.#queue.length
  }

  get isEmpty(): boolean {
    return this.#queue.length === 0
  }

  enqueue(element: T): void {
    this.#queue.push(element)
  }

  dequeue(): T | undefined {
    return this.#queue.shift()
  }

  getFront(): T | undefined {
    return this.#queue[0]
  }

  clear() {
    this.#queue = []
  }
}