//定义队列
function Queue(){
this.dataStore = [];
this.inqueue = inqueue; //入队
this.outqueue = outqueue; //出队
this.front = front; //查看队首元素
this.back = back; //查看队尾元素
this.toString = toString; //显示队列所有元素
this.clear = clear; //清空当前队列
this.empty = empty; //判断当前队列是否为空
}
//向队列末尾添加一个元素,直接调用 push 方法即可
function inqueue ( element ) {
this.dataStore.push( element );
}
//删除队列首的元素,可以利用 JS 数组中的 shift 方法
function outqueue () {
if( this.empty() ) return 'This queue is empty';
else this.dataStore.shift();
}
//我们通过判断 dataStore 的长度就可知道队列是否为空
function empty(){
if( this.dataStore.length == 0 ) return true;
else return false;
}
//查看队首元素,直接返回数组首个元素即可
function front(){
if( this.empty() ) return 'This queue is empty';
else return this.dataStore[0];
}
//查看队首元素,直接返回数组最后一个元素即可
//读取队列尾的元素
function back () {
if( this.empty() ) return 'This queue is empty';
else return this.dataStore[ this.dataStore.length - 1 ];
}
//查看对了所有元素,我这里采用数组的 join 方法实现
function toString(){
return this.dataStore.join('\n');
}
//清空当前队列,也很简单,我们直接将 dataStore 数值清空即可
function clear(){
delete this.dataStore;
this.dataStor = [];
}
let queue = new Queue()
queue.inqueue('a')
queue.inqueue('b')
queue.inqueue('c')
queue.outqueue()
console.log(queue.toString())
console