1155 Heap Paths (30 分)难度: 一般 / 知识点: 堆 堆的遍历

Posted 辉小歌

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1155 Heap Paths (30 分)难度: 一般 / 知识点: 堆 堆的遍历相关的知识,希望对你有一定的参考价值。


https://pintia.cn/problem-sets/994805342720868352/problems/1071785408849047552

#include<bits/stdc++.h>
using namespace std;
const int N=1e3*5+10;
int a[N],n,flag1,flag2;
vector<int>path;
void dfs(int u)

    if((u*2)>n&&(u*2+1)>n)//说明是叶子
    
        for(int i=0;i<path.size();i++) cout<<path[i]<<" ";
        cout<<a[u]<<endl;
        return;
    
    if(u*2+1<=n)
    
        if(a[u]>=a[u*2+1]) flag1=1;
        else flag2=1;
        path.push_back(a[u]);
        dfs(u*2+1);
        path.pop_back();
    
    if(u*2<=n)
    
        if(a[u]>=a[u*2]) flag1=1;
        else flag2=1;
        path.push_back(a[u]);
        dfs(u*2);
        path.pop_back();
    

int main(void)

    cin>>n;
    for(int i=1;i<=n;i++) cin>>a[i];
    dfs(1);
    if(flag1&&flag2) puts("Not Heap");
    else if(flag1) puts("Max Heap");
    else puts("Min Heap");

以上是关于1155 Heap Paths (30 分)难度: 一般 / 知识点: 堆 堆的遍历的主要内容,如果未能解决你的问题,请参考以下文章

PAT Advanced 1155 Heap Paths (30 分)

PAT 甲级 1155 Heap Paths

1155.Heap Paths-PAT甲级真题(DFS+堆和二叉树的概念)

PAT甲级——A1155 HeapPaths30

1098 Insertion or Heap Sort (25 分)难度: 中 / 插入排序 堆排序 堆排序不会未完成

PAT(甲级)2018年冬季考试 7-4 Heap Paths(非递归与递归解法)