博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
堆实例
阅读量:6177 次
发布时间:2019-06-21

本文共 2116 字,大约阅读时间需要 7 分钟。

#include 
using namespace std;class A{ public: A(int *data, int len){} }; template
class MaxHeap{ private: T *datas; int MaxSize; int currentSize; void KeepHeap(int root); bool del; public: MaxHeap(int MaxSize); MaxHeap(T *datas, int length); ~MaxHeap(); bool Insert(T data); T GetMax(); void RemoveMax(); void PrintHeap(){ for (int i=1; i<=currentSize; i++) { cout << datas[i] << " "; } cout << endl; } int GetCurrentSize() { return currentSize; } //void BuildMaxHeap(T *datas); }; template
MaxHeap
::MaxHeap(T *datas, int length) { this->datas = datas; currentSize = length; MaxSize = currentSize; for (int i=currentSize/2; i>0; i--) { KeepHeap(i); } del = false; } template
MaxHeap
::MaxHeap(int MaxSize) { this->MaxSize = MaxSize; datas = new T[this->MaxSize+1]; this->currentSize = 0; del = true; } template
MaxHeap
::~MaxHeap() { if(del) delete []datas; } template
bool MaxHeap
::Insert(T data) { if (currentSize+1 > MaxSize) { return false; } datas[++currentSize] = data; int index = currentSize; int temp = (index)/2; while (temp>=1) { if (datas[temp]
T MaxHeap
::GetMax() { return datas[1]; } template
void MaxHeap
::KeepHeap(int root) { int temp = datas[root]; while (root*2<=currentSize) { int child = root*2; if (child+1<=currentSize && datas[child] < datas[child+1]) { child++; } if (temp > datas[child]) { break; }else { datas[root] = datas[child]; } root = child; } datas[root] = temp; } template
void MaxHeap
::RemoveMax() { int temp = datas[1]; datas[1] = datas[currentSize]; datas[currentSize] = temp; currentSize--; KeepHeap(1); } void MinK(int *data, int length, int k) { MaxHeap
heap(length); for (int i=1; i
heap.GetCurrentSize()) { heap.Insert(data[i]); }else{ if (data[i]
h(4); // h.Insert(1); // h.Insert(2); // h.Insert(3); int data[] = {-1,15,24,3,8,7,6,5,7}; int len = sizeof(data)/sizeof(int); MaxHeap
h(data, len-1); for (int i=1; i

转载地址:http://xyzda.baihongyu.com/

你可能感兴趣的文章
linux 日志定时清理脚本
查看>>
java老司机面试题
查看>>
Guice AOP
查看>>
懒汉式单例
查看>>
java递归组装树形结构
查看>>
手把手教你自己写一个模糊搜索的下拉框
查看>>
.Net文档图像处理工具包GdPicture.NET发布v14.0.30,改进PDF/OCR生成速度
查看>>
NetBSD 8.1 RC1 发布
查看>>
12个必备的JavaScript装逼技巧
查看>>
域名备案图文教程
查看>>
iOS ScrollView上的view添加悬停效果
查看>>
Spring与MQ整合简单例子
查看>>
Apache-shiro学习
查看>>
React-Redux源码分析
查看>>
页面传递参数问题
查看>>
PHP FPM源代码反刍品味之五:信号signal处理
查看>>
5G网速真的有理论上那么高吗?
查看>>
Set添加自定义方法对象如何保证唯一性
查看>>
站在巨人肩膀上的牛顿:Kubernetes和SAP Kyma
查看>>
技术工坊|浅谈区块链的Layer2扩展(北京)
查看>>