TypeScript数据结构与算法(16)优先级队列-PriorityQueue
实现的源码如下:
import { Interface_Queue } from "../Interface_Queue";
import { DataStruct_BinaryMaxHeap } from "./DataStruct_BinaryMaxHeap";
/**
* Autor: Created by 李清风 on 2021-01-03.
* Desc: 优先级队列(基于二叉堆实现),关键词:优先级(Priority),运用场景:操作系统任务调用,游戏AI
*/
export class DataStruct_PriorityQueue<T> implements Interface_Queue<T> {
//*和普通队列相比,优先级队列的区别在于我们需要出队优先级最高的那个元素
//普通线性结构和顺序线性结构,都可以实现,区别在于算法的时间复杂度
private maxHeap: DataStruct_BinaryMaxHeap<T>;
public constructor() {
this.maxHeap = new DataStruct_BinaryMaxHeap<T>(10);
}
getSize(): number {
return this.maxHeap.size();
}
isEmpty(): boolean {
return this.maxHeap.isEmpty();
}
//入队
enqueue(e: T): void {
this.maxHeap.add(e);
}
//出队
dequeue(): T {
return this.maxHeap.extractMax();
}
getFront(): T {
return this.maxHeap.findMax();//也就是堆顶的数据
}
}

浙公网安备 33010602011771号