开门见山
直接见代码,上一篇JavaScript数据结构与算法(一):Stack有更详细的表述。
作为学习,记录一下。
let Queue = (function () {
const items = new WeakMap();
class Queue {
constructor() {
items.set(this, []);
}
enqueue(ele) {
let q = items.get(this);
q.push(ele);
}
dequeue() {
let q = items.get(this);
let r = q.shift();
return r;
}
front() {
let q = items.get(this);
return q[q.length-1];
}
isEmpty() {
return items.get(this).length == 0;
}
size() {
return items.get(this).length;
}
clear() {
items.set(this,[]);
}
print() {
console.log(items.get(this).toString());
}
}
return Queue;
})();
测试
let q = new Queue();
q.enqueue(1);
q.enqueue(2);
q.print();
q.dequeue();
q.print();