// 队列是一种先进先出的数据结构
// 队尾入列,队尾出列
// 常见的队列操作
// 1, 向对尾添加一个或多个元素 enqueue
// 2, 从对头移除一个元素 dequeue
// 3, 查看对头元素 front
// 4, 判断队列是否为空 isEmpty
// 5, 返回队列长度 size
// 6, 清空队列 clear
// 7, 打印队列所有元素 print
function Queue (){
let item = []
// 1, 向对尾添加一个或多个元素 enqueue
this.enqueue = function(element){
if(Array.isArray(element)){
item = item.concat(element)
}else{
item.push(element)
}
}
// 2, 从对头移除一个元素 dequeue
this.dequeue = function(){
return item.shift()
}
// 3, 查看对头元素 front
this.front = function(){
return item[0]
}
// 4, 判断队列是否为空 isEmpty
this.isEmpty = function(){
return item.length === 0
}
// 5, 返回队列长度 size
this.size = function(){
return item.length
}
// 6, 清空队列 clear
this.clear = function(){
item = []
}
// 7, 打印队列所有元素 print
this.print = function(){
console.log(item)
}
}
let queue = new Queue();
console.log(queue.isEmpty()); // true
queue.enqueue('John');
queue.enqueue(['Jack', 'Camila']);
queue.print(); // John,Jack,Camila
console.log(queue.size()); // 3
console.log(queue.isEmpty()); // false
console.log(queue.front()); // John
console.log(queue.dequeue()); // John
queue.print(); // Jack,Camila
queue.clear();
queue.print(); //
console