欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

队列的实现

程序员文章站 2022-03-01 13:02:11
...

队列实现以下功能

enqueue() 入队方法

dequeue() 出队方法

top()          获取队首值

size()         获取队列的元素个数

clear()       清空队列

基于数组

// 基于数组
class Queue {
  constructor() {
    this.queue = []
    this.count = 0
  }

  // 入队
  enQueue(item) {
    this.queue[this.count++] = item
  }

  // 出队
  deQueue() {
    if (this.isEmpty()) {
      return
    }

    this.count--
    return this.queue.shift()
  }

  isEmpty() {
    return this.count === 0
  }

  // 获取队首元素值
  top() {
    return this.queue[0]
  }

  // 获取元素个数
  size() {
    return this.count
  }

  // 清空队列
  clear() {
    this.queue = []
    this.count = 0
  }
}

基于对象

class Queue1 {
  constructor() {
    this.queue = {}
    this.count = 0
    this.head = 0 // 用于记录队首的键
  }

  // 入队
  enQueue(item) {
    this.queue[this.count++] = item
  }

  // 出队
  deQueue() {
    if (this.isEmpty()) {
      return
    }

    const data = this.queue[this.head]
    delete this.queue[this.head]
    this.head++
    return data
  }

  isEmpty() {
    return this.size() === 0
  }

  // 获取队首元素值
  top() {
    return this.queue[0]
  }

  // 获取元素个数
  size() {
    return this.count - this.head
  }

  // 清空队列
  clear() {
    this.queue = {}
    this.count = 0
    this.head = 0
  }
}

1