用Javascript创建队列

尽管JavaScript中的数组提供了Queue的所有功能,但让我们实现自己的Queue类。我们的课程将具有以下功能-

  •  enqueue(element):在队列中添加元素的功能。

  •  dequeue():从队列中删除元素的函数。

  •  peek():从队列的前面返回元素。

  •  isFull():检查我们是否达到队列上的元素限制。

  •  isEmpty():检查队列是否为空。

  •  clear():删除所有元素。

  •  display():显示数组的所有内容

让我们从定义一个简单的类开始,该类具有一个构造函数,该构造函数占用队列的最大大小;以及一个辅助函数,当我们为该类实现其他函数时,该函数将对我们有所帮助。在实现堆栈时,我们还将使用数组实现队列。

示例

class Queue {
   constructor(maxSize) {
      //设置默认最大大小(如果未提供)
      if (isNaN(maxSize)) {
         maxSize = 10;
       }
      this.maxSize = maxSize;
      //初始化一个包含队列值的数组。
      this.container = [];
   }
   //帮助程序功能在开发时显示所有值
   display() {
      console.log(this.container);
   }
   //检查队列是否为空
   isEmpty(){
      return this.container.length === 0;
   }
   //检查队列是否已满
   isFull() {
      return this.container.length >= this.maxSize;
   }
}

我们还定义了另外两个函数isFull和isEmpty来检查队列是否已满。

isFull函数仅检查容器的长度是否等于或大于maxSize并相应地返回。

isEmpty函数检查容器的大小是否为0。

当我们定义其他操作时,这些将很有帮助。从现在开始,我们定义的功能将全部放入Queue类中。