MinHeap.h文件源码
#pragma once
#include<iostream>
using namespace std;
//enum bool{true, false};
#define defaultSize 100
template<class T>
class MinHeap {
public:
MinHeap(int sz = defaultSize); //最小堆的默认构造函数
MinHeap(T arr[], int sz); //通过一个数组创建构造函数
~MinHeap(); //析构函数
bool insert(const T& x); //将x插入到最小堆中
bool removeMin(T& x); //删除最小堆中最小的元素,保存至x中
bool isEmpty(); //判断最小堆是否为空
bool isFull(); //判断最小堆是否满
void makeEmpty(); //将最小堆置空
void display(); //输出最小堆
private:
T* _heap; //存放堆中元素的数组
int _currentSize; //最小堆中当前元素的个数
int _maxHeapSize; //最小堆中最多允许的个数
void shifDown(int start, int end); //从start 到end下滑调整为最小堆
void shifUp(int start); //从start 到0上滑调整为最小堆
};
//最小堆的默认构造函数