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

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:

主站蜘蛛池模板: 桓台县| 板桥市| 田林县| 万盛区| 逊克县| 三穗县| 宁海县| 霍邱县| 禄丰县| 教育| 信宜市| 巨鹿县| 新丰县| 盐池县| 神池县| 津市市| 屏边| 弋阳县| 绥江县| 曲沃县| 无为县| 安仁县| 安图县| 上虞市| 炉霍县| 嘉峪关市| 海安县| 宁阳县| 上栗县| 龙南县| 陈巴尔虎旗| 宜宾县| 若尔盖县| 宣威市| 枣阳市| 临西县| 财经| 灌阳县| 铜陵市| 邳州市| 鹿泉市|