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

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:

主站蜘蛛池模板: 册亨县| 三都| 嘉善县| 揭阳市| 定安县| 乡宁县| 盈江县| 盐边县| 巴马| 繁昌县| 鞍山市| 许昌县| 札达县| 会昌县| 突泉县| 上饶县| 彭阳县| 商河县| 巴南区| 常山县| 屏山县| 唐海县| 禹城市| 绥江县| 察哈| 穆棱市| 博兴县| 鱼台县| 吴堡县| 宣化县| 芮城县| 顺平县| 新竹市| 耒阳市| 邹城市| 海伦市| 芦溪县| 连云港市| 兴国县| 额敏县| 明溪县|