1. 程式人生 > >javascript資料結構與演算法筆記(二):普通佇列

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();