使用TypeScript实现队列结构
一. 基本概念
队列是一种先进先出(First In First Out)的数据结构。它是从队尾插入元素(入队),从队首删除元素(出队)。队列在日常生活中就是排队,在JavaScript中的应用就是EventLoop微任务宏任务队列等。
二. 队列的实现
interface IQueueData<T> {
[index: number]: T
}
class Queue<T> {
private data: IQueueData<T> = {
}
private count = 0
private lowCount = 0
enqueue (ele: T) {
this.data[this.count++] = ele
}
dequeue () {
if (this.isEmpty()) return
const result = this.data[this.lowCount]
delete this.data[this.lowCount++]
return result
}
peek () {
return this.data[this.lowCount]
}
isEmpty () {
return this.count === this.lowCount
}
size () {
return this.count - this.lowCount
}
clear () {
this.data = {
}
this.count = 0
this.lowCount = 0
}
toString () {
if (this.isEmpty()) return ''
let objString = `${
this