javascript數據結構與算法筆記(二):普通隊列

javascript數據結構與算法筆記(二):普通隊列

一:簡介

隊列是遵循FIFO( First In First Out, 先進先出,也稱爲先來先服務)原則的一組有序的項。
隊列在尾部添加新元素,並從頂部移除元素。最新添加的元素必須排在隊列的末尾。

二:ES6版Queue類

1.使用WeakMap類聲明Queue類
具體原因可以參照:https://blog.csdn.net/wushichao0325/article/details/84969725

let Queue=(function(){
    const items=new WeakMap();
    class Queue{
        constructor(){
            items.set(this,[]);
        }
    }
    return Queue;
})();

2.向隊列添加元素

enqueue(element){
	let q=items.get(this);
    q.push(element);
}

3.從隊列移除元素

dequeue(){
   let q=items.get(this);
   let r=q.shift();
   return r;
}

4.查看隊列頭元素

front(){//查看隊列頭元素
    let q=items.get(this);
    return q[0];
}

5.檢查隊列是否爲空
isEmpty,如果隊列爲空的話將返回true,否則就返回false:

isEmpty(){
    let q=items.get(this);
    return q.length==0;
}
size(){
    let q=items.get(this);
    return q.length;
}

6.打印隊列元素

print(){
    let q=items.get(this);
    console.log(q.toString())
}

7.使用隊列

let queue=new Queue();
console.log(queue.isEmpty());
queue.enqueue('1');
queue.enqueue('2');
queue.print();
console.log(queue.size());
console.log(queue.isEmpty());
queue.dequeue();
queue.dequeue();
queue.print();
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章