自学内容网 自学内容网

KY194 树查找(用Java实现)

描述

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

输入描述:

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

输出描述:

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

示例1

输入:

4
1 2 3 4
2

输出:

2 3

代码如下:

import java.util.Scanner;

/*
 * 树查找
 */
public class TreeFind {

public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while(scanner.hasNext()) {
int n = scanner.nextInt();
int[] arr = new int[n];

for (int i = 0; i < n; i++) {
arr[i] = scanner.nextInt();
}

int d = scanner.nextInt();

if ( n >= Math.pow(2, d)-1) {
//树的层数至少有d+1
for (int i = (int)Math.pow(2, d-1)-1; i < Math.pow(2, d)-1 ; i++) {
System.out.print(arr[i] + " ");
}
}else if (n >= Math.pow(2, d-1) && n < Math.pow(2, d)-1) {
//树的层数为d
for (int i = (int)Math.pow(2, d-1)-1; i < n; i++) {
System.out.print(arr[i]+" ");
}
}else {
//树的层数小于d
System.out.println("EMPTY");
}

}
}
}


原文地址:https://blog.csdn.net/Laz124519/article/details/136995363

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!