【1147】Heaps (30分)【堆】
【摘要】
#include<iostream>#include<stdio.h>#include<stdlib.h>#include<math.h>#include<string.h>#include<algorithm> #include<map>#inclu...
-
#include<iostream>
-
#include<stdio.h>
-
#include<stdlib.h>
-
#include<math.h>
-
#include<string.h>
-
#include<algorithm>
-
#include<map>
-
#include<vector>
-
#include<queue>
-
using namespace std;
-
//if判断别漏了right<n防止越界
-
-
int m,n;
-
vector<int>v;
-
void postOrder(int index){
-
if(index>=n) return;
-
postOrder(index*2+1);
-
postOrder(index*2+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-1)/2;j++){
-
int left=j*2+1,right=j*2+2;
-
if(flag==1&&(left<n&&v[j]<v[left]||(right<n&&v[j]<v[right])))
-
flag=0;
-
if(flag==-1&&(left<n&&v[j]>v[left]||(right<n&&v[j]>v[right])))
-
flag=0;
-
}
-
if(flag==0) printf("Not Heap\n");
-
else printf("%s Heap\n",flag==1?"Max":"Min");
-
postOrder(0);
-
}
-
system("pause");
-
return 0;
-
}
文章来源: andyguo.blog.csdn.net,作者:山顶夕景,版权归原作者所有,如需转载,请联系作者。
原文链接:andyguo.blog.csdn.net/article/details/103917420
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)