题目1176:树查找

来源:互联网 发布:卷积深度信念网络 编辑:程序博客网 时间:2024/06/06 12:57
题目1176:树查找

时间限制:1 秒

内存限制:32 兆

题目描述:

有一棵树,输出某一深度的所有节点,有则输出这些节点,无则输出EMPTY。该树是完全二叉树。

输入:

输入有多组数据。
每组输入一个n(1<=n<=1000),然后将树中的这n个节点依次输入,再输入一个d代表深度。

输出:

输出该树中第d层得所有节点,节点间用空格隔开,最后一个节点后没有空格。

样例输入:
41 2 3 42
样例输出:
2 3
#include <iostream>#include<string.h>#include<stdio.h>#include<math.h>using namespace std;int a[1002];int main(){    int n;    while(scanf("%d",&n)!=EOF)    {        int depth=0;        int tmp=n;        int begin,end;        while(tmp)//判断一共有多少层        {            tmp/=2;            depth++;        }        for(int i=0;i<n;i++)        {            scanf("%d",&a[i]);        }        int d;//要查找的层数        scanf("%d",&d);        if(d<=0||d>depth)        {            printf("EMPTY\n");            break;        }else        {             begin =(int)pow(2.0,d-1)-1;             end=(int)pow(2.0,d)-2;            if(d==depth)            {                end=n-1;            }        }        printf("%d",a[begin]);        for(int i=begin+1;i<=end;i++)        {            printf(" %d",a[i]);        }        printf("\n");    }    return 0;}

 

0 0