如题:利用Java语言编写二叉树并用三种方式(前序、中序、后序)遍历树
分析:
1、创建一个空树类。
2、创建一个根节点类。
3、创建一个测试类。
4、利用递归的思想进行二叉树的遍历。
具体代码如下:
1、空树类:
public class BinaryTree {
// 空树 类
//设置一个根节点
TreeNode root;
public void setRoot(TreeNode root) {
this.root = root;
}
public TreeNode getRoot() {
return root;
}
public void frontShow() {
root.frontShow();
}
public void midShow() {
root.midShow();
}
public void afterShow() {
root.afterShow();
}
}
2、根节点类:
public class TreeNode { // 树节点
// 节点的权
int value;
// 左儿子
TreeNode leftNode;
// 右儿子
TreeNode rightNode;
public TreeNode(int value){
this.value = value;
}
// 设置左儿子
public void setLeftNode(TreeNode leftNode) {
this.leftNode = leftNode;
}
// 设置右儿子
public void setRightNode(TreeNode rightNode) {
this.rightNode = rightNode;
}
public void frontShow() {
System.out.println(value);
if(leftNode != null){
leftNode.frontShow();
}
if(rightNode != null){
rightNode.frontShow();
}
}
public void midShow() {
if(leftNode != null){
leftNode.midShow();
}
System.out.println(value);
if(rightNode != null){
rightNode.midShow();
}
}
public void afterShow() {
if(leftNode != null){
leftNode.afterShow();
}
if(rightNode != null){
rightNode.afterShow();
}
System.out.println(value);
}
}
3、测试类:
public class TestBinaryTree {
public static void main(String[] args) {
// 创建一个树
BinaryTree bintree = new BinaryTree();
// 创建一个根节点
TreeNode root = new TreeNode(1);
// 将根节点赋给树
bintree.setRoot(root);
// 创建一个左节点
TreeNode rootL = new TreeNode(2);
// 将新创建的节点设置为根节点的子节点
root.setLeftNode(rootL);
// 创建一个右节点
TreeNode rootR = new TreeNode(3);
// 将新创建的节点设置为根节点的子节点
root.setRightNode(rootR);
// 为第二层的左节点创建两个子节点
rootL.setLeftNode(new TreeNode(4));
rootL.setRightNode(new TreeNode(5));
// 为第二层的右节点创建两个子节点
rootR.setLeftNode(new TreeNode(6));
rootR.setRightNode(new TreeNode(7));
// 前序遍历树
bintree.frontShow();
System.out.println("===================");
// 中序遍历树
bintree.midShow();
System.out.println("===================");
// 后序遍历树
bintree.afterShow();
}
}
人生若只如初见,何事秋风悲画扇。
等闲变却故人心,却道故人心易变。
-----------纳兰性德
小白寄语:学如逆水行舟,不进则退。