赞
踩
- #include<iostream>
- #include<vector>
- using namespace std;
- vector<int> v;
- int M,N;
- void postOrder(int index){
- if(index>=N) return;
- postOrder(2*index+1);
- postOrder(2*index+2);
- printf("%d%s",v[index],index==0?"\n":" ");
- }
- int main(){
- scanf("%d%d",&M,&N);
- v.resize(N);
- for(int i=0;i<M;i++){
- for(int j=0;j<N;j++)
- scanf("%d",&v[j]);
- int flag=v[0]>v[1]?1:-1;
- for(int j=0;j<N/2;j++){
- int left=2*j+1;
- int right=2*j+2<N?2*j+2:2*j+1;//右结点可能不存在
- if(((v[j]>v[left]||v[j]>v[right])&&flag==-1)||((v[j]<v[left]||v[j]<v[right])&&flag==1)){
- printf("Not Heap\n");
- flag=0;
- break;
- }
- }
- if(flag==1) printf("Max Heap\n");
- if(flag==-1) printf("Min Heap\n");
- postOrder(0);
- }
- return 0;
- }
-
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。