数据结构
Muzzik
动动你的金手指点个赞吧!
展开
-
最小堆的指定删除
其实最小堆是可以指定删除某个节点的,包括最大堆。只要使用正确的方法伪代码:// 向下调整if (末尾节点key >要删除的节点key) { //这里就使用尾换头的方法调整,只不过把所谓的 "头" 换成了指定节点}// 向上调整else { //这里的逻辑比尾换头简单的多,也是我们删除指定节点重要的地方,向上调整 因为我们要删除的节点key >尾节点key,为了符合有序性的规则就必须将尾节点向上调整,调整方法也很简单:...原创 2020-05-23 23:51:58 · 1697 阅读 · 0 评论 -
C++最小堆实现
mini_heap.h#pragma once#include <cstdint>template <class T>class mini_heap {private: struct node { uint32_t size; T* data; }; node* _heap; //最小堆 uint32_t _max_size; //最大存储数 uint32_t _size; //存储数 // 扩容 void expansion();原创 2020-05-24 01:35:47 · 446 阅读 · 0 评论 -
C++最大堆实现
max_heap.h#pragma once#include <cstdint>template <class T>class max_heap {private: struct node { uint32_t size; T* data; }; node* _heap; //最大堆 uint32_t _max_size; //最大存储数 uint32_t _size; //存储数 // 扩容 void expansion();原创 2020-05-24 01:37:11 · 380 阅读 · 0 评论