📄 minheap.h
字号:
#ifndef MINHEAP_H
#define MINHEAP_H
#include<iostream.h>
template<class T>
class minHeap
{
private:
T vector[30];
int count;
public:
minHeap() {count=0;}
void insert(T el)
{
if(count==30)
cout<<"minHeap is full!"<<endl;
else if(count==0)
{
vector[0]=el;
count++;
}
else
{
int i=count;
while(i!=0 && vector[(i+1)/2-1]>el)
{
vector[i]=vector[(i+1)/2-1];
vector[(i+1)/2-1]=el;
i=(i+1)/2-1;
}
if(i==count)
vector[count]=el;
count++;
}
}
T delHead()
{
if(count==0)
{
cout<<"minHeap is empty!"<<endl;
return NULL;
}
else if(count==1)
{
count--;
return vector[0];
}
else
{
T tmp,a=vector[0];
vector[0]=vector[count-1];
count--;
for(int i=1;2*i<=count;)
if(vector[i-1]>vector[2*i-1] && (2*i==count || vector[2*i-1]<=vector[2*i]))
{
tmp=vector[i-1];
vector[i-1]=vector[2*i-1];
vector[2*i-1]=tmp;
i=2*i;
}
else if(vector[i-1]>vector[2*i] && vector[2*i-1]>=vector[2*i])
{
tmp=vector[i-1];
vector[i-1]=vector[2*i];
vector[2*i]=tmp;
i=2*i+1;
}
else break;
return a;
}
}
void print()
{
for(int i=1;i<=count;i++)
cout<<vector[i-1]<<" ";
cout<<endl;
}
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -