avaScript数据结构与算法(二):Queue

开门见山

直接见代码,上一篇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();

猜你喜欢

转载自blog.csdn.net/w_bu_neng_ku/article/details/80345064