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); }}
新闻热点
疑难解答