题解 | #树查找#

树查找

https://www.nowcoder.com/practice/9a10d5e7d99c45e2a462644d46c428e4

#include <iostream>

#include <valarray>
#include <queue>
#include <cstring>
#include <stack>

using namespace std;



int main() {
    int n;
    cin>>n;
    int tree[n+1];
    for (int i = 1; i < n+1; ++i) {
        cin>>tree[i];
    }
    int high;
    cin>>high;
    int min= pow(2,high-1);     // 需输出的节点的最小编号
    int max= pow(2,high);       // 需输出的最大节点的 下一个节点的编号
    if (min>n){
        cout<<"EMPTY";
    }
    for (int i = min; i < max&&i<n+1; ++i) {
        cout<<tree[i]<<" ";
    }
    return 0;
}

用数组来存就可以,完全二叉树的节点规律找到就很简单

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务