📄 threeorder.java
字号:
import java.io.*;
import java.util.*;
class BiTreeNode{
String content;
BiTreeNode left;
BiTreeNode right;
BiTreeNode(){
content = "";
left = null;
right = null;
}
BiTreeNode(String content, BiTreeNode left, BiTreeNode right){
this.content = content;
this.left = left;
this.right = right;
}
void preOrder(){
System.out.print(content + " ");
if (left != null)
left.preOrder();
if (right != null)
right.preOrder();
}
void inOrder(){
if (left != null)
left.inOrder();
System.out.print(content + " ");
if (right != null)
right.inOrder();
}
void postOrder(){
if (left != null)
left.postOrder();
if (right != null)
right.postOrder();
System.out.print(content + " ");
}
}
public class ThreeOrder{
public static void main(String[] args) throws Exception{
System.out.println("请输入二叉树内容:第一行为节点数n,后面的n行是节点A -1 3的形式");
String line;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
line = br.readLine();
int amount = Integer.parseInt(line);
if (amount == 0){
System.out.println("空树的前序、中序和后序遍历均为空");
return;
}
BiTreeNode[] nodes = new BiTreeNode[amount];
for (int i=0; i<amount; i++)
nodes[i] = new BiTreeNode();
for (int i=0; i<amount; i++){
line = br.readLine();
String[] sub = line.split(" ");
int leftMark = Integer.parseInt(sub[1]);
int rightMark = Integer.parseInt(sub[2]);
nodes[i].content = sub[0];
if (leftMark >= 0)
nodes[i].left = nodes[leftMark];
if (rightMark >= 0)
nodes[i].right = nodes[rightMark];
}
System.out.println("您输入的二叉树的前序遍历结果是:");
nodes[0].preOrder();
System.out.println("\n您输入的二叉树的中序遍历结果是:");
nodes[0].inOrder();
System.out.println("\n您输入的二叉树的后序遍历结果是:");
nodes[0].postOrder();
System.out.println();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -