简介
队列遵循的是FIFO(先进先出)的原则的一组有序的项。
队列从尾部添加新元素,并从顶部移除元素,最新添加的元素必须排列在队列的末尾。
它的想法来自于生活中排队的策略。顾客在付款结账的时候,按照到来的先后顺序排队结账,先来的顾客先结账,后来的顾客后结账。
代码实现
让我们在js提供的数组方法上,简单实现一个队列(Queue)类:
- enqueue(): 向队列尾部插入一个元素
- dequeue(): 移除队列第一个元素
- front(): 返回队列第一个元素
- isEmpty(): 判断队列是否为空
- clear(): 移除队列所有元素
- size(): 返回队列元素个数
function Queue() {
var items = [];
this.enqueue = function(element){//向队列尾部添加一个(或是多个)元素
items.push(element);
};
this.dequeue = function(){//移除队列的第一个元素,并返回被移除的元素
return items.shift();
};
this.front = function(){//返回队列的第一个元素——最先被添加的,也将是最先被移除的元素。队列不做任何变动。(不移除元素,只返回元素信息。与stack的peek方法类似)
return items[0];
};
this.isEmpty = function(){//如果队列内没有任何元素就返回true,否则返回false
return items.length == 0;
};
this.clear = function(){//移除队列里的所有元素
items = [];
};
this.size = function(){//返回队列里的元素个数
return items.length;
};
this.print = function(){//打印
console.log(items.toString());
};
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。