- 队列的特点:队列是一种先进先出(First in First Out)的线性表,简称FIFO。允许插入的一端称为队尾,允许删除的一端称为队头。
- 队列的操作方法:
push():向队尾添加元素
shift():删除队首元素
toString():显示队列中的所有元素 - 队列的实现
function Queue(){
this.dataStore=[];
this.enqueue=enqueue;
this.dequeue=dequeue;
this.front=front;
this.back=back;
this.toString=toString;
this.empty=empty;
}
//向队尾添加一个元素
function enqueue(element){
this.dataStore.push(element);
}
//删除队首元素
function dequeue(){
return this.dataStore.shift();
}
//读取队首元素
function front(){
return this.dataStore[0];
}
//读取队尾元素
function back(){
return this.dataStore[this.dataStore.length-1];
}
//显示队内所有元素
function toString(){
var retStr='';
for(var i=0;i<this.dataStore.length;++i){
retStr+=this.dataStore[i]+"\n";
}
return retStr;
}
//判断队列是否为空
function empty(){
if(this.dataStore.length==0){
return ture;
}
else{return false;}
}
测试用例如下:
var q=new Queue();
q.enqueue("Meredith");
q.enqueue("Cynthia");
q.enqueue("Jennifer");
console.log(q.toString());
q.dequeue();
console.log(q.toString());
console.log("Front of queue:"+q.front());
console.log("back of queue:"+q.back());
测试结果如下图所示: