队列 一种遵循先进先出(FIFO)原则的一组有序的项
下面是我在学习队列的过程中,封装的队列数据结构
class Queue {
constructor() {
this.count = 0
this.item = {}
this.first = 0
}
enqueue(e) {
this.item[this.count] = e
this.count++
}
size() {
return this.count - this.first
}
isEmpty() {
return this.count - this.first === 0
}
dequeue() {
if(this.isEmpty()) {
return undefined
}else {
let res = this.item[this.first]
delete this.item[this.first]
this.first++
return res
}
}
toString() {
if(this.isEmpty()) {
return ""
}else {
let res = ""
for(let key in this.item) {
res += this.item[key]
}
return res
}
}
}
let q = new Queue()
q.enqueue('1')
q.enqueue('2')
q.enqueue('3')
q.enqueue('4')
console.log(q);
console.log(q.dequeue());
console.log(q.toString());
这只是简单的封装了一个队列数据结构,这里我使用的是对象的方法来保存队列中的数据,也可以使用数组来封装。 参考书籍:《学习JacaScript数据结构与算法》(第三版)