zoukankan      html  css  js  c++  java
  • 树查询

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

    输入:

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

    输出:

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

    样例输入:
    4
    1 2 3 4
    2
    样例输出:
    2 3
    #include<stdio.h>
    #include<math.h>
    int main()
    {
       int d,n,i,j,a[1101];
       while(scanf("%d",&n)!=EOF)
       {
           for(i=1;i<=n;i++)
              scanf("%d",&a[i]);
           scanf("%d",&d);
           if(n<(int)pow(2,d-1))
               printf("EMPTY
    ");
           else
             {
                printf("%d",a[(int)pow(2,d-1)]);
                for(i=(int)pow(2,d-1)+1;i<=(int)pow(2,d)-1&&i<=n;i++)
                   printf(" %d",a[i]);
                printf("
    ");                    
             }
      }//while
      return 0;
    }

       二叉树复习下:

                 非空二叉树上第k层上至多有pow(2,k-1)

                 高度为H的二叉树至多有pow(2,H)-1个节点。

                 具有N个结点的完全二叉树的高度为log2(N+1)或【log2N】+1;

  • 相关阅读:
    spring 实现测试解耦
    Java 反射实例 (二)
    Java 反射实例
    Thread.join()
    缓存输入/输出流
    文件的拷贝
    将键盘输入的数据保存到文件中:OutputStream
    InputStream中read方法各个参数的意义
    OutputStream
    InputStream中的主要的子类
  • 原文地址:https://www.cnblogs.com/xiao-wei-wei/p/3354492.html
Copyright © 2011-2022 走看看