隊列:先進先出
function Queue(len){
let _arr = new Array(len+1);
let front = 0;
let rear = 0;
this.enQueue = function(item){
if(this.isFull()){
console.log('隊列已滿!');
return false;
}
_arr[rear] = item;
rear = (rear+1)%_arr.length;
}
this.deQueue = function(){
if(this.isEmpty()){
console.log('隊列爲空!');
return false;
}
let item = _arr[front];
front = (front+1)%_arr.length;
return item;
}
this.isEmpty = function(){
return front === rear;
}
this.isFull = function(){
return (rear+1) % _arr.length === front;
}
}
使用(front+1)%arr.length 的方式向後移動指向開頭和結尾的指針,循環隊列要求空一個空間來判斷