姆洋自主研发堆(heap)头文件

这是姆洋自主研发的heap头文件

将其录入IDE,并保存为heap.h,保存在存放C++头文件的文件夹里(我只知道Dev-C++是Dev-cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include/c++),就可以用

1 #include <heap.h>

 

的方式调用了。

 1 //copyright muyang_233@outlook.com
 2 //in 2019.9.25 v1.0
 3 //this is a new STL by muyang_233 ownself that is a heap,you can use this to make a heap instead of priority_queue.
 4 template<typename T>
 5 struct heap{
 6     T H[1000001];
 7     int head=0;
 8     void push(T& x){
 9         H[++head]=x;
10         int _h=head;
11         while(H[_h/2]>H[_h]){
12             T ___=H[_h/2];H[_h/2]=H[_h];H[_h]=___;
13             _h/=2;
14         }
15     }
16     T top(){
17         return H[1];
18     }
19     void pop(){
20         H[1]=H[head];
21         head--;
22         int p=1,t;
23         while(p*2<=head){
24             if (p*2+1>head||H[p*2]<=H[p*2+1]) t=p*2;
25             else t=p*2+1;
26             if (H[p]>H[t]){
27                 T ___=H[t];H[t]=H[p];H[p]=___;
28                 p=t;
29             }
30             else break;
31         }
32     }
33     bool empty(){
34         return !head;
35     }
36     int size(){
37         return head;
38     }
39 };

持续更新,请关注<姆洋自主研发头文件>分类。

上一篇:二分查找___代码


下一篇:PLSQL_性能优化系列10_Oracle Array