数据结构之队列操作(js)
//循环队列
function myQueue(capacity){
this.array = new Array(capacity);//初始化队列的总数量
let front = 0;//队列头指针
let rear = 0;//队列尾指针
this.enQueue = (element)=>{
if((rear+1)%this.array.length == front){//判断是否队列已满
throw new Error("队列已满")
}
this.array[rear] = element;
rear = (rear+1)%this.array.length;//将指针指到下一位
}
this.deQueue = ()=>{
if(rear == front){//判断队列是否为空
throw new Error("队列已空")
}
let deQueueElement = this.array[front];//将队列头部信息储存一下返回
front = (front+1)%this.array.length;//将指针指到下一位
return deQueueElement;
}
this.output = ()=>{//输出队列信息
for(let i=front;i!=rear;i=(i+1)%this.array.length){
console.log(this.array[i]);
}
}
}
let myqueue = new myQueue(6);
myqueue.enQueue(1)
myqueue.enQueue(2)
myqueue.enQueue(3)
myqueue.deQueue()
myqueue.deQueue()
myqueue.enQueue(4)
myqueue.enQueue(5)
myqueue.enQueue(6)
myqueue.output();
本文为第二节js的队列操作。