队列是一种特殊线性表,它允许在表的前段(front)进行删除操作,在后端(back)进行插入操作,是一种先入先出的数据结构;进行插入操作的叫对尾,进行删除操作的叫对头。
队列的主要操作有:插入新元素(入队),删除队列的元素(出队),入队操作在对位插入新元素,出队操作在对头删除新元素。下图所示:
JavaScript代码实现:
function Queue(array) {
if (array instanceof Array) {
this.dataArray = array;
}else{
throw "'"+array+"' is not an Array";
}
};
Queue.prototype = {
EnQueue: function (element) {//入队
this.dataArray.push(element);
},
DeQueue: function () {//出队
return this.dataArray.shift();
},
Front: function () {//返回队列的第一个元素
return this.dataArray[0];
},
Back: function () {//返回队列的最后一个元素
return this.dataArray[this.dataArray.length - 1];
},
ToString: function () {
return this.dataArray.join(",");
},
IsEmpty: function () {
return this.dataArray.length == 0;
}
};
var queue = new Queue(['a','b','c']);
alert(queue.ToString());
queue.EnQueue("d");
alert(queue.ToString());
queue.DeQueue();
alert(queue.ToString());
alert(queue.DeQueue());