https://vjudge.net/problem/UVA-699
利用数组,把数组中间的元素作为根,下表为p,左子树p-1,右子树p+1;
import java.util.Scanner;
import java.util.Vector;
public class Main {
private static int maxn = 1000;
private static Scanner scan = new Scanner(System.in);
public static void main(String[] args) {
int cases = 1;
while(true){
int v = scan.nextInt();
if(v==-1)
break;
int[] d = new int[maxn];
int p = maxn/2;
d[p] = v;
build(d,p-1);
build(d,p+1);
String str = "";
for(int i=0;i<maxn;i++){
if(d[i]!=0){
str+=d[i]+" ";
}
}
System.out.println("Case "+cases+":");
System.out.println(str.trim());
System.out.println();
cases++;
}
}
public static void build(int[] d,int p){
int v = scan.nextInt();
if(v==-1)
return;
d[p] += v;
build(d,p-1);
build(d,p+1);
}
}