【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;   
}
相关文章
|
5月前
【每日一题Day361】LC2558从数量最多的堆取走礼物 | 大顶堆
【每日一题Day361】LC2558从数量最多的堆取走礼物 | 大顶堆
36 0
|
5月前
|
存储 算法
算法编程(九):最小栈
算法编程(九):最小栈
33 0
|
2月前
|
存储 算法
【算法】栈算法——最小栈
【算法】栈算法——最小栈
|
5月前
|
存储 算法 安全
堆的应用例子
【5月更文挑战第6天】堆栈是一种LIFO(后进先出)数据结构,支持push、pop、isEmpty、isFull和peek等操作。内部使用切片存储接口类型的元素
63 0
堆的应用例子
L2-012 关于堆的判断 (25 分)(小顶堆的模拟建立和关系判定)
L2-012 关于堆的判断 (25 分)(小顶堆的模拟建立和关系判定)
103 0
【数据结构】堆的建立 (时间复杂度计算-堆排序)---超细致
【数据结构】堆的建立 (时间复杂度计算-堆排序)---超细致
320 0
[leetcode] 面试题 17.20. 连续中值 | 对顶堆维护动态中位数
[leetcode] 面试题 17.20. 连续中值 | 对顶堆维护动态中位数
95 0
|
存储
实现一个最小栈(简单难度)
实现一个最小栈(简单难度)
77 0
实现一个最小栈(简单难度)