牛客網------KY194樹查找

KY194 樹查找

題目描述

有一棵樹,輸出某一深度的所有節點,有則輸出這些節點,無則輸出EMPTY。該樹是完全二叉樹。

輸入描述:

輸入有多組數據。
每組輸入一個n(1<=n<=1000),然後將樹中的這n個節點依次輸入,再輸入一個d代表深度。

輸出描述:

輸出該樹中第d層得所有節點,節點間用空格隔開,最後一個節點後沒有空格。

示例1

輸入

4
1 2 3 4
2

輸出

2 3

題解:

#include <iostream>
#include <algorithm>
#include <cstring> 
#include <cmath>
using namespace std;
int main(){
    //利用數組存儲完全二叉樹
    int a[1024];
    memset(a, 0, sizeof(a));
    int t, d;
    cin>>t;
    for(int i=1; i<=t; i++){
        int x;
        cin>>x;
        a[i] = x;
    }
    cin>>d;
    //第d層起始節點
    int start = (int)pow(2, d-1);
    //end:第d層結尾節點+1
    int end = min((int)pow(2, d), t);
    if(end - start < 0){
        cout<<"EMPTY"<<endl;
    }else{
        int i = start;
        for(; i< end - 1; i++){
            cout<<a[i] <<" ";
        }       
        cout<<a[i]<<endl;
    }

    return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章