队列是一种列表,不同的是队列只能在队尾插入元素,在队首删除元素。
队列用于存储按顺序排列的数据,先进先出,可以将队列想象成在食堂排队打饭的人群,排在队伍最前面的人第一个打饭,新来的人只能在最后面排队,直到轮到他们为止。
队列是一种先进先出(First-In-First-Out,FIFO)的数据结构
代码如下
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 true;
}else{
return false;
}
}
测试一下
//测试一下!
var q = new Queue();
q.enqueue("mary");
q.enqueue("jack");
q.enqueue("lily");
console.log(q.toString());
q.dequeue();
console.log(q.toString());
console.log("front of queue:" + q.front());
console.log("back of queue:" + q.back());
结果如下