题目1176:树查找

时间限制:1 秒

内存限制:32 兆

题目描述:

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

输入:

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

输出:

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

样例输入:
4
1 2 3 4
2
样例输出:
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;
}

时间: 2024-10-13 21:21:47

题目1176:树查找的相关文章

九度OJ 1176 树查找

题目1176:树查找 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:3979 解决:1700 题目描述: 有一棵树,输出某一深度的所有节点,有则输出这些节点,无则输出EMPTY.该树是完全二叉树. 输入: 输入有多组数据. 每组输入一个n(1<=n<=1000),然后将树中的这n个节点依次输入,再输入一个d代表深度. 输出: 输出该树中第d层得所有节点,节点间用空格隔开,最后一个节点后没有空格. 样例输入: 4 1 2 3 4 2 样例输出: 2 3 来源: 2010年北京邮电大学

树查找练习

题目描述 有一棵树,输出某一深度的所有节点,有则输出这些节点,无则输出EMPTY.该树是完全二叉树. 输入描述: 输入有多组数据.每组输入一个n(1<=n<=1000),然后将树中的这n个节点依次输入,再输入一个d代表深度. 输出描述: 输出该树中第d层得所有节点,节点间用空格隔开,最后一个节点后没有空格. 输入例子: 41 2 3 42 输出例子: 2 3 代码: import java.util.Scanner; public class 树查找 { public static void

hihoCoder挑战赛28 题目3 : 树的方差

题目3 : 树的方差 时间限制:20000ms 单点时限:1000ms 内存限制:256MB 描述 对于一棵 n 个点的带标号无根树,设 d[i] 为点 i 的度数. 定义一棵树的方差为数组 d[1..n] 的方差 给定 n ,求所有带标号的 n 个点的无根树的方差之和. 你需要将答案对 998244353 取模. 方差的定义:https://en.wikipedia.org/wiki/Variance 输入 仅一行:一个正整数 n 2 ≤ n ≤ 106 输出 仅一行:一个非负整数表示答案 样

题目1069:查找学生信息(STL的map简单应用)

题目描述: 输入N个学生的信息,然后进行查询. 输入:                        输入的第一行为N,即学生的个数(N<=1000) 接下来的N行包括N个学生的信息,信息格式如下: 01 李江 男 21 02 刘唐 男 23 03 张军 男 19 04 王娜 女 19 然后输入一个M(M<=10000),接下来会有M行,代表M次查询,每行输入一个学号,格式如下: 02 03 01 04 输出:                        输出M行,每行包括一个对应于查询的学

微软2014编程之美初赛第一场——题目2 : 树

[来源] 题目2 : 树 [分析] 依据输入情况建立起树的模型.树的表示是一个表明父亲节点的数组.核心算法有两个: 计算某一节点的深度.用循环实现,一直向上找父亲节点,直到找到根节点.计算循环的次数即为深度. 计算某一节点的全部子节点.用递归实现. 本题在实现上节点的命名从0至N-1,与题目描写叙述不同. [代码] #include <iostream> #include <vector> using namespace std; vector<int> childre

《剑指Offer》题目:树的子结构

题目描述:树的子结构 输入两棵二叉树A,B,判断B是不是A的子结构.(ps:我们约定空树不是任意一个树的子结构) 题目分析:此题可以拆成两题,1.在二叉树中查找是否存在某个结点:2.判断两个二叉树是否有相同的结构 Java代码: class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; } } public class

题目1069:查找学生信息

时间限制:1 秒 内存限制:32 兆 //重点在于二分查找 题目描述: 输入N个学生的信息,然后进行查询. 输入: 输入的第一行为N,即学生的个数(N<=1000) 接下来的N行包括N个学生的信息,信息格式如下: 01 李江 男 21 02 刘唐 男 23 03 张军 男 19 04 王娜 女 19 然后输入一个M(M<=10000),接下来会有M行,代表M次查询,每行输入一个学号,格式如下: 02 03 01 04 输出: 输出M行,每行包括一个对应于查询的学生的信息. 如果没有对应的学生信

海量路由表可以使用HASH表存储吗-HASH查找和TRIE树查找

千万别!很多人这样说,也包括我.Linux内核早就把HASH路由表去掉了,现在就只剩下TRIE了,不过我还是希望就这两种数据结构展开一些形而上的讨论. 1.hash和trie/radix hash 和tire其实是可以统一在一起的.具有相同hash值的多个项具有一个共同的特征,这个特征怎么提取呢?无疑这就是hash函数的工作.而trie树 (或者radix树,管它呢)的一棵子树也有共同的特征,这个特征怎么提取呢?无疑这就是该子树根节点的父节点指示的某些bits在这棵子树的每一个节点 都具有相同的

9-11-Trie树/字典树/前缀树-查找-第9章-《数据结构》课本源码-严蔚敏吴伟民版

课本源码部分 第9章  查找 - Trie树/字典树/前缀树(键树) ——<数据结构>-严蔚敏.吴伟民版        源码使用说明  链接??? <数据结构-C语言版>(严蔚敏,吴伟民版)课本源码+习题集解析使用说明        课本源码合辑  链接??? <数据结构>课本源码合辑        习题集全解析  链接??? <数据结构题集>习题解析合辑        本源码引入的文件  链接? Status.h.Scanf.c        相关测试数据