javascript数据结构与算法笔记(四):循环队列
一:简介
循环队列是指队列头元素的移除会追加到队列的尾部。我们此次拿一个例子来实现循环队列,例子名就是模拟民间游戏击鼓传花即:数人或几十人围成圆圈坐下,其中一人拿花(或一小物件);另有一人背着大家或蒙眼击鼓(桌子、黑板或其他能发出声音的物体),鼓响时众人开始依次传花,至鼓停止为止。此时花在谁手中(或其座位前),谁就上台表演节目(多是唱歌、跳舞、说笑话;或回答问题、猜谜、按纸条规定行事等);偶然如果花在两人手中,则两人可通过猜拳或其它方式决定负者。
二:ES6版Queue类
1.使用WeakMap类声明PriorityQueue类
具体原因可以参照:https://blog.csdn.net/wushichao0325/article/details/84969725
let Queue=(function(){
const items=new WeakMap();
class Queue{
constructor(){
items.set(this,[]);
}
enqueue(element){
let q=items.get(this);
q.push(element);
}