# ヒープ (データ構造)

コンピュータサイエンスにおいて、*ヒープ*は特殊な木構造のデータ構造で、後述するヒープの特性を持っています。

*最小ヒープ*では、もし`P`が`C`の親ノードの場合、`P`のキー(値)は`C`のキーより小さい、または等しくなります。

![MinHeap](./images/min-heap.jpeg)

*Made with [okso.app](https://okso.app)*

*最大ヒープ*では、`P`のキーは`C`のキーより大きい、もしくは等しくなります。

![MaxHeap](./images/max-heap.jpeg)

![Array Representation](./images/array-representation.jpeg)

ヒープの「トップ」のノードには親ノードが存在せず、ルートノードと呼ばれます。

## 参考

- [Wikipedia](https://en.wikipedia.org/wiki/Heap_(data_structure))
- [YouTube](https://www.youtube.com/watch?v=t0Cq6tVNRBA&index=5&t=0s&list=PLLXdhg_r2hKA7DPDsunoDZ-Z769jWn4R8)
