#include "stdio.h"
#include "stack.h"
#define maxHeapSize 20 //小根堆中最多允许元素
///---------------堆的类型跟操作的定义-----------------------------------
//小根堆的数据结构类型定义
typedef int DataType;
typedef struct MinNode{
DataType key[maxHeapSize]; //定义一个数据域数组型
int currentSize; //当前元素个数
}MinHeap;
//小根堆自上向下筛选算法
void siftDown(MinHeap *minHeap,int i,int m){
//从结点hight开始到m为止,自上向下比较,如果子女的值小于父结点
//则关键字小的向上浮,继续向下层比较,这样将一个集合局部调整为小
//根堆,主要用于创建
DataType tmp=minHeap->key[i];
int j;
for(j=2*i+1;j<=m;j=j*2+1){
if(minHeap->key[j]>minHeap->key[j+1]&&j<m)//比较hight层的左右孩子
j