官术网_书友最值得收藏!

A simple queue

Similar to a stack, we will create a queue using the following steps:

  1. Define a constructor():
class Queue {
constructor() {

}
}
  1. We will be using WeakMap() for in-memory data storage just like we did for stacks: 
    const qKey = {};
const items = new WeakMap();

class Queue {
constructor() {

}
}
  1. Implement the methods described previously in the API:
var Queue = (() => {
const qKey = {};
const items = new WeakMap();

class Queue {

constructor() {
items.set(qKey, []);
}

add(element) {
let queue = items.get(qKey);
queue.push(element);
}

remove() {
let queue = items.get(qKey);
return queue.shift();
}

peek() {
let queue = items.get(qKey);
return queue[queue.length - 1];
}

front() {
let queue = items.get(qKey);
return queue[0];
}

clear() {
items.set(qKey, []);
}

size() {
return items.get(qKey).length;
}
}

return Queue;
})();

We have again wrapped the entire class inside an IIFE because we don't want to make ;Queue items accessible from the outside:

主站蜘蛛池模板: 阳泉市| 乌拉特后旗| 长治市| 洛隆县| 岫岩| 股票| 永登县| 通海县| 宾阳县| 长兴县| 东光县| 阜宁县| 湖州市| 交口县| 固镇县| 出国| 巨鹿县| 信阳市| 专栏| 天等县| 佛学| 双牌县| 亳州市| 申扎县| 福安市| 历史| 灵宝市| 磴口县| 上栗县| 拜城县| 洪湖市| 五台县| 久治县| 正蓝旗| 兴化市| 铅山县| 彭州市| 观塘区| 香港 | 巴林右旗| 株洲县|