【1147】Heaps (30分)【堆】

简介: 【1147】Heaps (30分)【堆】【1147】Heaps (30分)【堆】
#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;   
}
相关文章
|
7月前
【每日一题Day361】LC2558从数量最多的堆取走礼物 | 大顶堆
【每日一题Day361】LC2558从数量最多的堆取走礼物 | 大顶堆
43 0
|
7月前
|
存储 算法
算法编程(九):最小栈
算法编程(九):最小栈
37 0
堆的介绍与堆的实现和调整
堆的介绍与堆的实现和调整
82 0
|
4月前
|
存储 算法
【算法】栈算法——最小栈
【算法】栈算法——最小栈
|
6月前
指针\分配动态空间-筛选法求质数
指针\分配动态空间-筛选法求质数
37 5
|
7月前
|
存储 算法 安全
堆的应用例子
【5月更文挑战第6天】堆栈是一种LIFO(后进先出)数据结构,支持push、pop、isEmpty、isFull和peek等操作。内部使用切片存储接口类型的元素
75 0
堆的应用例子
L2-012 关于堆的判断 (25 分)(小顶堆的模拟建立和关系判定)
L2-012 关于堆的判断 (25 分)(小顶堆的模拟建立和关系判定)
108 0
最小的K个数(手写大顶堆和用优先级队列比较)
输入n个整数,找出其中最小的K个数。
103 0
[leetcode] 面试题 17.20. 连续中值 | 对顶堆维护动态中位数
[leetcode] 面试题 17.20. 连续中值 | 对顶堆维护动态中位数
105 0