请将二叉树的遍历算法补充完整。
方法描述
private void PreOrder11(BTNode<Character> root) {
//先根遍历
}
private void InOrder11(BTNode<Character> root) {
//中根遍历
}
private void PostOrder11(BTNode<Character> root) {
//后根遍历
}
输入样例:
输入二叉树的括号表示法的字符串。每个元素为字符型。(输入为非空字符串)。
A(B,C)
输出样例:
输出三种遍历的结果,先根遍历、中根遍历、后根遍历。 每个结果占一行。 每个元素后有1个空格,用于分隔。例如:
A B C
B A C
B C A
裁判测试程序样例:
源程序如下:
import java.util.Scanner;
import java.util.Stack;
class BTNode <E>{
E data;
BTNode<E> lchild;
BTNode<E> rchild;
public BTNode(E e)
{
data=e;
lchild=null;
rchild=null;
}
}
class BTTreeClass {
public BTNode<Character> root;
public BTTreeClass()
{
root=null;
}
void CreatBTTree(String s)
{
//用 括号表示法的字符串创建二叉链,内容 省略。
}
public void PreOrder1( )
{
PreOrder11(this.root);
}
public void InOrder1( )
{
InOrder11(this.root);
}
public void PostOrder1()
{
PostOrder11(this.root);
}
/* 答案填充在这里*/
}
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
BTTreeClass bt = new BTTreeClass();
String s= sc.next();
bt.CreatBTTree(s);
bt.PreOrder1( );
System.out.println();
bt.InOrder1( );
System.out.println();
bt.PostOrder1( );
System.out.println();
sc.close();
}
}
需补充代码
private void PreOrder11(BTNode<Character> root) {
//先根遍历
if (root != null) {
System.out.print(root.data+" ");
PreOrder11(root.lchild);
PreOrder11(root.rchild);
}
}
private void InOrder11(BTNode<Character> root) {
//中根遍历
if (root != null) {
InOrder11(root.lchild);
System.out.print(root.data+" ");
InOrder11(root.rchild);
}
}
private void PostOrder11(BTNode<Character> root) {
//后根遍历
if (root != null) {
PostOrder11(root.lchild);
PostOrder11(root.rchild);
System.out.print(root.data+" ");
}
}