前端数据结构和算法—队列

25,384 阅读1分钟

function版本

            function Queue() {
                let items = [];
                this.enqueue = function(element) {
                    items.push(element);
                }
                this.dequeue = function(element) {
                    return items.shift();
                }
                this.front = function() {
                    return items[0]
                }
                this.isEmpty = function() {
                    return items.length == 0;
                }
                this.size = function() {
                    return items.length;
                }
                this.print = function() {
                    return items.length;
                }
            }

weakMap版本

    let Queue2 = (function () {
    const items = new WeakMap();
    
    class Queue2 {
        constructor(){
            items.set(this,[]);
        }
        enqueue(element){
            let q = items.get(this);
            q.push(element);
        }
        dequeue() {
            let q = items.get(this);
            let r = q.shift();
            return r;
        }
        return Queue2;
    }
})();