今天的笔试题,acm模式写树,第一次遇到,关于树的输入输出格式做一个记录。
题目描述
分别按照二叉树先序,中序和后序打印所有的节点。
输入描述:
第一行输入两个整数 n 和 root,n 表示二叉树的总节点个数,root 表示二叉树的根节点。
以下 n 行每行三个整数 fa,lch,rch,表示 fa 的左儿子为 lch,右儿子为 rch。(如果 lch 为 0 则表示 fa 没有左儿子,rch同理)
输出描述:
输出三行,分别表示二叉树的先序,中序和后序。
递归:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
/**
* @author WanZi
* @create 2022-10-11 16:33
*/
//二叉树的前序、中序、后序、遍历
public class Tree {
public static StringBuilder pre = new StringBuilder();
public static StringBuilder in = new StringBuilder();
public static StringBuilder post = new StringBuilder();
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
reader.readLine();
TreeNode root = creat(reader);
preOrder(root);
inOrder(root);
postOrder(root);
System.out.println();
System.out.println("前序:" + pre.toString().trim());
System.out.println("中序:" + in.toString().trim());
System.out.println("后序:" + post.toString().trim());
}
public static TreeNode creat(BufferedReader reader){