<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>队列</title>
<script type="text/javascript">
//开始准备实现队列
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] + "
";
}
return retStr;
}
//队列是否为空
function empty() {
if(dataStore.length == 0){
return true;
}
else {
return false;
}
}
//测试
//构造对象
var q = new Queue();
//入队
q.enqueue("A");
q.enqueue("B");
q.enqueue("C");
q.enqueue("D");
//打列元素
console.log(q.toString());
//队首
console.log("Front of queue: " + q.front());
//道尾
console.log("Back of queue: " + q.back());
//出队
q.dequeue();
//队首
console.log("Front of queue: " + q.front());
//道尾
console.log("Back of queue: " + q.back());
//打列元素
console.log(q.toString());
</script>
</head>
<body>
</body>
</html>
//效果