完整可运行代码
class Queue {
constructor() {
this.count = 0
// 队头
this.head = 0
this.items = {}
}
enqueue(element) {
this.items[this.count] = element
this.count++;
}
dequeue() {
if (this.isEmpty()) {
return undefined;
}
const result = this.items[this.head]
delete this.items[this.head]
this.head++
return result
}
peek() {
if (this.isEmpty()) {
return undefined
}
return this.items[this.head]
}
isEmpty() {
return this.size() === 0
}
clear() {
this.items = {}
this.count = 0
this.head = 0
}
size() {
return this.count - this.head
}
toString() {
if (this.isEmpty()) {
return ''
}
let objString = `${this.items[this.head]}`
for (let i = this.head + 1; i < this.count; i++) {
objString = `${objString},${this.items[i]}`
}
return objString
}
}
//
const queue = new Queue()
queue.enqueue('a')
queue.enqueue('b')
queue.enqueue('c')
queue.enqueue('d')
console.log(queue.toString()) //--> a,b,c,d
queue.dequeue()
queue.dequeue()
console.log(queue.toString()) //--> c,d
console.log(queue.peek()) //--> c
console.log(queue.isEmpty()) //--> false
console.log(queue.size()) //--> 2
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。