# 堆（大/小顶堆 、优先队列）

大顶堆、小顶堆

优先队列 是基于堆来实现的

## &#x20;定义

大顶堆、小顶堆， 就是看顶点是大的数字还是小的数字。

## 基本功能

### 1、插入队列

### 2、弹出队列顶点元素

### 3、获取队列中优先级最高的元素

### 4、是否为空

### 5、大小

###

## 总结

{% hint style="info" %}
大顶堆用于实现最大优先队列（Max-Heap），小顶堆用于实现最小优先队列（Min-Heap）。
{% endhint %}

## 使用场景

\
优先队列在很多算法和实际应用中都非常有用，包括但不限于：<br>

* **任务调度**：操作系统调度进程或线程时，可以使用优先队列根据任务的优先级进行调度。
* **路径查找算法**：如 Dijkstra 算法和 A\* 算法，需要使用优先队列来选择当前路径的最小代价节点。
* **事件驱动模拟**：模拟系统中不同事件的发生顺序。
* **数据流处理**：处理实时数据流时，优先处理高优先级的数据。
