Skip to main content

queue

队列

1.创建类表示队列

class Queue {
constructor () {
this.count = 0
this.lowestCount = 0 // 第一个元素
this.items = {}
}
}

2.向队列添加元素

新的项只能添加到队列末尾

enqueue (elements) {
this.items[this.count] = elements
this.count++
}

3.从队列移除元素

遵循先进先出的原则,最先添加的项也最先被移除

dequeue () {
if (this.isEmpty()) {
return undefined
}
let result = this.items[this.lowestCount]
delete this.items[this.lowestCount]
this.lowestCount++
return result
}

4.查看队列头元素

peek () {
if (this.isEmpty()) {
return
}
return this.items[this.lowestCount]
}

5.检查队列是否为空

isEmpty () {
return this.size() === 0
}

6.获取队列长度

size () {
return this.count - this.lowestCount
}

7.清空队列

clear () {
this.items = {}
this.lowestCount = 0
this.count = 0
}

8.创建toString方法

toString () {
if (this.isEmpty()) {
return
}
let str = ''
for (let i = this.lowestCount; i < this.size(); i++) {
str += `${this.items[i]}`
}
return str
}