二叉树存储实现
// 节点
public class BinaryNode {
// 存放的信息
Object data;
// 左儿子
BinaryNode left;
// 右儿子
BinaryNode right;
}
//前序遍历
public static void DLR(BinaryNode node) {
// 访问根节点
System.out.print(node.data + " ");
// 遍历左子树
if (node.left != null) {
DLR(node.left);
}
// 遍历右子树
if (node.right != null) {
DLR(node.right);
}
}
//后序遍历
public static void LRD(BinaryNode node) {
// 遍历左子树
if (node.left != null) {
LRD(node.left);
}
// 遍历右子树
if (node.right != null) {
LRD(node.right);
}
// 访问根节点
System.out.print(node.data + " ");
}
//中序遍历
// 遍历左子树
if (node.left != null) {
LDR(node.left);
}
// 访问根节点
System.out.print(node.data + "");
// 遍历右子树
if (node.right != null) {
LDR(node.right);
}
前序遍历 A B D H I E J C F G
中序遍历 H D I B J E A F C G
后续遍历 H I D J E B F G C A