优先队列(二叉堆)模板(template)
2017-05-01 11:10
204 查看
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小加
相关文章推荐
- angularjs指令系统系列课程(2):优先级priority,模板template,模板页templateUrl
- C++模板(template)
- discuz X2中template文件夹中模板文件目录
- 关于Django模板报TemplateDoesNotExist异常
- 扩展了Repeater控件的EmptyDataTemplate模板功能
- silverlight 数据模板 DataTemplate 使用 codebehind实现
- template模板换行展示某一项数据
- 出位的template.js 基于jquery的模板渲染插件,简单、好用
- 微信小程序-template模板使用
- template-模板完全特化
- Repeater在无数据记录时显示类似GridView空模板(EmptyDataTemplate)
- C++ 模板中的template typename 和template class的区别
- template declarations(模板声明)中 class 和 typename 的异同
- 控件模板Template(Silverlight)
- 第 9 章 模板方法模式【Template Method Pattern】
- js模板引擎-art-template常用总结(转)
- 全面超越 Velocity 的全新一代 Java 模板引擎 jetbrick-template
- Expression Blend实例中文教程(12) - 样式和模板快速入门Style,Template
- C++ - 成员函数(member function)模板(template) 详解 及 代码
- 全面超越 Velocity 的全新一代 Java 模板引擎 jetbrick-template 1.0.2 正式版发布。