优先队列(二叉堆)模板(template)
来源:互联网 发布:瞻博网络 上海 电话 编辑:程序博客网 时间:2024/05/16 07:53
template<class T,int MAX=100003>class BinaryHeap{ private: int Size; T * Tarr; public: BinaryHeap(); void insert(T x); T deleteMin(); ~BinaryHeap();};template<class T,int MAX>BinaryHeap<T,MAX>::BinaryHeap(){ Tarr=new T[MAX+1]; if(Tarr==NULL) {cout<<"创建数组失败"<<endl;return ;} Size=0;}template<class T,int MAX>void BinaryHeap<T,MAX>::insert(T x){ ++Size; if(Size==MAX) return; int i; for(i=Size;Tarr[i/2]>x;i/=2) Tarr[i]=Tarr[i/2]; Tarr[i]=x;}template<class T,int MAX>T BinaryHeap<T,MAX>::deleteMin(){ if(Size==0) return 0; T minem=Tarr[1]; T lastem=Tarr[Size--]; int i,child; for(i=1;i*2<=Size;i=child) { child=i*2; if(child!=Size-1&&Tarr[child+1]<Tarr[child]) ++child; if(lastem>Tarr[child]) Tarr[i]=Tarr[child]; else break; } Tarr[i]=lastem; return minem;}template<class T,int MAX>BinaryHeap<T,MAX>::~BinaryHeap(){ delete[] Tarr;}
from C小加
0 0
- 优先队列(二叉堆)模板(template)
- 二叉堆(优先队列)
- 二叉堆(优先队列)
- 二叉堆(优先队列)
- 二叉堆(优先队列)
- 优先队列(二叉堆)
- 优先队列--二叉堆
- 二叉堆/优先队列
- 优先队列---二叉堆
- STL 优先队列学习(二叉堆)
- 优先队列 - 数据结构 (二叉堆)
- 优先队列(利用二叉堆实现)
- 二叉堆维护优先队列
- 二叉堆之优先队列
- 优先队列_二叉堆
- 优先队列--二叉堆实现
- 优先队列和二叉堆
- 二叉堆和优先队列
- 两个fragment之间跳转
- 用C++编写的SOCKET服务端与客户端代码实例
- python 常用的Python内置函数
- Java FileNotFound异常但是文件明明存在
- Java常用工具类封装——String操作工具类
- 优先队列(二叉堆)模板(template)
- Eclipse 项目导航字体设置
- 【闲聊】那些“数学符号” 的英语发音
- PHP函数讲解:get_magic_quotes_gpc()使用方法
- Java 反射之工厂模式
- MySQL5.7版本配置
- Linux之我做系统性能调优时常用的一些命令
- android activity管理(六)之ActivityRecord的回收
- hash_map哈希映照容器的实现(template)