队列是一种特殊的线性表,特点是先进先出,它只允许在表的前端进行删除操作,而在表的后端进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。

——百度百科

了解了队列结构的特点,我们来实现它:

class Queue{
 constructor(){
  this.items = new Array();
 }
 //1.enqueue() 向队列尾部添加一个元素
 enqueue(el) {
  this.items.push(el)
 }
 //2.dequeue() 移除队列的第一个元素,并返回被移除的元素
 dequeue(el) {
  return this.items.shift()
 }
 //3.front() 查看队列中的第一个元素
 front(){
  return this.items[0]
 }
 //4.isEmpty() 查看队列是否为空  空返回true
 isEmpty(){
  return this.items.length === 0
 }
 //5.size() 返回队列的元素个数
 size(){
  return this.items.length
 }
 //6.toString() 将队列中的内容转换为字符串并返回
 toString(){
  let res = new String();
   for (let i = 0; i < this.items.length; i++) {
    res = res + this.items[i] + " "
   }
  return res
 }
}

队列的基本运算已经写完了,接下来我们来测试一下:

let q = new Queue();    
for (let i = 0; i < 5; i++) {
 q.enqueue(i)
}
console.log(q.dequeue())
console.log(q.front())
console.log(q.isEmpty())
console.log(q.size())
console.log(q.toString())

0
1
false
4
1 2 3 4
控制台依次打印的信息如上,完全正确。

以上,队列的实现~

               

作者