C++最大堆实现max_heap.h max_heap.tcc ```cpp template maxheap::maxheap(uint32t maxsize_) : heap(new node[maxsize_]{}), maxsize(maxsize), _size(0) {} template maxheap::~maxheap() { delete[] ...muzzik大约 2 分钟笔记排序算法C++最大堆
C++最小堆实现mini_heap.h mini_heap.tcc ```cpp template miniheap::miniheap(uint32t maxsize_) : heap(new node[maxsize_]{}), maxsize(maxsize), _size(0) {} template miniheap::~miniheap() { del...muzzik大约 2 分钟笔记排序算法C++最小堆
最小堆的指定删除其实最小堆是可以指定删除某个节点的,包括最大堆。只要使用正确的方法 伪代码: // 向下调整 if (末尾节点 key > 要删除的节点 key) { //这里就使用尾换头的方法调整,只不过把所谓的 "头" 换成了指定节点 } // 向上调整 else { //这里的逻辑比尾换头简单的多,也是我们删除指定节点重要的地方,向上调整 因为我们要删除的节点...muzzik大约 1 分钟笔记排序算法C++最小堆