zoukankan      html  css  js  c++  java
  • BUPT复试专题—树查找(2011)

    https://www.nowcoder.com/practice/9a10d5e7d99c45e2a462644d46c428e4?tpId=67&tqId=29641&rp=0&ru=/kaoyan/retest/1005&qru=/ta/bupt-kaoyan/question-ranking

    题目描述

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

    输入描述:

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

    输出描述:

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

    输入

    4
    1 2 3 4
    2


    输出

    2 3


    完全二叉树如果不是最后一层则该层节点数目固定可以先打表,最后一层单独算即可

    #include<iostream>
    #include<cstdio>
    #include<cmath>
    #include<algorithm>
    #include<string.h>
    using namespace std;
    int main()
    {
        int num,exl[10];exl[1]=1;
        for(int i=2;i<=11;i++)
            exl[i]=exl[i-1]*2;
        while(scanf("%d",&num)!=EOF)
        {
            int donser[1001],deep;
            for(int i=1;i<=num;i++)
                scanf("%d",&donser[i]);
            scanf("%d",&deep);
            int temp=1,sum=0;
            while(temp!=deep)
            {
                num-=exl[temp];
                sum+=exl[temp];
                temp++;
                if(num<0)
                {
                    num=0;
                    break;
                }
                //cout<<"num:"<<num<<" sum:"<<sum<<" temp:"<<temp<<" exl:temp:"<<exl[temp]<<endl;
            }
            if(num==0)
            {
                cout<<"EMPTY"<<endl;
                continue;
            }
            if(num>=exl[temp])
            {
                for(int i=sum+1;i<=sum+exl[temp];i++)
                {
                    cout<<donser[i];
                    if(i!=sum+exl[temp])
                        cout<<" ";
                }
                    
            }
            else
            {
                for(int i=sum+1;i<=sum+num;i++)
                {
                    cout<<donser[i];
                    if(i!=sum+num)
                        cout<<" ";
                }
            }
            cout<<endl;
        }
        return 0;    
    }
  • 相关阅读:
    Eclipse安装Hadoop插件
    (转)Ubuntu14.0.4中hadoop2.4.0伪分布模式配置
    Hadoop--DataNode无法启动
    启动与关闭hadoop
    hadoop中执行命令时发生错误
    strings命令
    Deriving data from ElasticSearch Engine
    elasticsearch data importing
    reading words in your computer and changing to female voice, linux festival text2wave saving wav files
    DDNS client on a Linux machine
  • 原文地址:https://www.cnblogs.com/dzzy/p/8260676.html
Copyright © 2011-2022 走看看