1.使用到的Array方法有:push()、pop()
2.对列对象代码:
class Queue {
arr = [];
offset = 0;
// 初始化对象参数
constructor(arr) {
this.arr = arr;
this.offset = 0;
}
// 队尾插入元素
push(item) {
this.arr.push(item);
}
// 队首弹出元素
shift() {
// shift在数据比较多时性能比较差
// this.arr.shift();
const item = this.arr[this.offset];
this.arr[this.offset] = undefined;
this.offset += 1;
// 防止undefined数量过多
if (this.offset > this.arr.length / 2) {
this.arr.splice(0, this.offset);
this.offset = 0;
}
return item;
}
// 第一个对列元素
first() {
return this.arr.length > 0 ? this.arr[this.offset] : undefined;
}
// 判断队列是否为空
isEmpty() {
return this.arr.length === 0;
}
// 清空队列
clear() {
this.arr = [];
}
// 获取队列的大小
size() {
return this.arr.length;
}
}