【浙大数据结构】堆
堆
什么是堆
- 优先队列(Priority Queue):特殊的“队列”,取出元素的顺序是依照元素的优先权(关键字)大小,而不是元素进入队列的先后顺序


堆的两个特性:
- 结构性:用数组表示的完全二叉树;
- 有序性:任一结点的根结点是其子树所有结点的最大值(或最小值)
- “最大堆(MaxHeap)”,也称“大顶堆”:最大值
- “最小堆(MinHeap)”,也称“小顶堆”:最小值
####堆的抽象数据类型描述

最大堆的创建
1 | typedef struct HeapStruct* MaxHeap |
堆的插入
1 | // 先插入数组末尾,然后一路上升 |
堆的删除
1 | // 拿数组最后一个元素顶替被删除元素,然后一路下降 |
堆的建立
1 | void PerDown(Heap H, int Index) |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 星の夜!