用java 代码实现下图的二叉树:
图2
节点:
public class TreeNode {
//节点的权
int value;
//左节点
TreeNode leftNode;
//右节点
TreeNode rightNode;
public TreeNode(int value) {
this.value = value;
}
public TreeNode getLeftNode() {
return leftNode;
}
public void setLeftNode(TreeNode leftNode) {
this.leftNode = leftNode;
}
public TreeNode getRightNode() {
return rightNode;
}
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.midShow();
}
//右节点
if (rightNode != null) {
rightNode.midShow();
}
//打印当前节点的值
System.out.println(value);
}
}
二叉树:
public class BinaryTree {
//根节点
TreeNode root;
public TreeNode getRoot() {
return root;
}
public void setRoot(TreeNode root) {
this.root = root;
}
public void frontShow() {
root.frontShow();
}
public void midShow() {
root.midShow();
}
public void afterShow() {
root.afterShow();
}
}
创建如图二叉树:
public class TestBinaryTree {
public static void main(String[] args) {
//创建一棵树
BinaryTree binaryTree = new BinaryTree();
//创建一个根节点
TreeNode root = new TreeNode(1);
//把根节点赋值给树
binaryTree.setRoot(root);
//创建两个节点
TreeNode rootL = new TreeNode(2);
root.setLeftNode(rootL);
TreeNode rootR = new TreeNode(3);
root.setRightNode(rootL);
//前序遍历
binaryTree.frontShow();
//中序遍历
binaryTree.midShow();
//后序遍历
binaryTree.afterShow();
}
}