资源简介
c++ 最小堆 还不错 标准库没有 自己做作业用。
代码片段和文件信息
template
class MinHeap {
public:
MinHeap(int MinHeapSize = 10);
~MinHeap() {delete [] heap;}
int Size() const {return CurrentSize;}
T Min() {if (CurrentSize == 0)
throw OutOfBounds();
return heap[1];}
MinHeap& Insert(const T& x);
MinHeap& DeleteMin(T& x);
void Initialize(T a[] int size int ArraySize);
void Deactivate() {heap = 0;}
void Output() const;
private:
int CurrentSize MaxSize;
T *heap;
};
template
MinHeap::MinHeap(int MinHeapSize)
{
MaxSize = MinHeapSize;
heap = new T[MaxSize+1];
CurrentSize = 0;
}
template
MinHeap& MinHeap::Insert(const T& x)
{
if (CurrentSize == MaxSize)
throw NoMem();
//为x寻找应插入的位置
//i从新的叶节点开始,并沿着树上升
int i = ++CurrentSize;
while (i != 1 && x < heap[i/2])
{
heap[i] = heap[i/2]; // 将元素下移
i /= 2; // 移向父节点
}
heap[i] = x;
return *this;
}
template
MinHeap& MinHeap::DeleteMin(T& x)
{
if (CurrentSize == 0)
throw OutOfBounds();
x = heap[1];
T y = heap[CurrentSize--]; //最后一个元素
// 从根开始 为y寻找合适的位置
int i = 1 // 堆的当前节点
ci = 2; // i的子节点
while (ci <= CurrentSize)
相关资源
- opencv+udp+c++ 的摄像头实时传输显示源
- 稀疏矩阵运算器(c++)
- C++教程网 大并发高性能高可用可伸缩
- 操作系统课程设计(最佳适应算法的
- 马的极小满覆盖源代码C++编写
- 一个漂亮的VC++示波器生成类
- C/C++课程设计-学生成绩管理系统
- 走迷宫算法
- SOM自组织神经网络C++实现代码
- DES加密算法C++实现
- C++ Primer 5th 习题集 源代码
- C++课程设计飞机订票系统
- C++中用数组实现的通讯录
- vc++基于MFC实现多媒体播放器源码
- Boost.Asio C++ 网络编程.epub
- 垃圾清理系统 C++
- C++列车时刻查询系统
- c++学生成绩管理系统源代码+实验报告
- 5种页面置换算法C++实现
- VC++ 实现定时关机或休眠-MFC 对话框应
- jsoncpp-1.8.0
- 循环列队数据结构课题舞会配对的问
- 校园导航系统c++数据结构
- c++ 编写的 有理数类
- C++远程监控软件源码
- C++经典练习例题200例
- C++原始SOCKET编写的SYN Flood 源码
- PTA基础编程答案
- 中国地质大学C++课件6
- springsnail项目源码
评论
共有 条评论