Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
WA了很久, 还请牛人给点测试数据:(Java)import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.LinkedList; class Main { public static void main(String[] args) throws Exception { Main main = new Main(); main.solve(); } public void solve() throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int T = Integer.parseInt(br.readLine()); while (T-- > 0) { // Node root = build(br.readLine();); // printByLevel(root); printByLevel(build(br.readLine())); // printByPostorder(root); // System.out.println(); } } public Node build(String s) { Node node = new Node(s.charAt(s.length() - 1)); if (s.length() <= 1) { return node; } if (s.length() == 3) { node.left = new Node(s.charAt(0)); node.right = new Node(s.charAt(1)); return node; } int i; int count = 2; for (i = 2; i < s.length() - 1; i++) { if (s.charAt(i) <= 'Z') { count -= 2; // if left child is a subtree; if (count == 0) { // System.out.print(s.substring(0, i + 1) + ", " // + s.substring(i + 1, s.length() - 1)); // System.out.println(); node.left = build(s.substring(0, i + 1)); node.right = build(s.substring(i + 1, s.length() - 1)); break; } count++; } else count++; } // if the left child is just a number. if (count == 2) { node.left = build("" + s.charAt(0)); node.right = build(s.substring(1, s.length() - 1)); } return node; } public void printByPostorder(Node root) { if (root == null) { return; } printByPostorder(root.left); printByPostorder(root.right); System.out.print(root.data); } public void printByLevel(Node root) { LinkedList<Node> q = new LinkedList<Node>(); q.add(root); for (int i = 0; i < q.size(); i++) { Node tmp = q.get(i); if (tmp.left != null) { q.add(tmp.left); q.add(tmp.right); } } for (int i = q.size() - 1; i >= 0; i--) System.out.print(q.get(i).data); System.out.println(); } } class Node { public char data; public Node left; public Node right; public Node(char c) { this.data = c; this.left = null; this.right = null; } } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator