// 构造二叉树
1
/ \
2 3
/ / \
4 5 7
\ /
6 8
一、二叉树的前、中、后序遍历(递归与非递归实现)
二、二叉树的广度、深度优先遍历
三、求二叉树的高度
import java.util.*;
//二叉树的深度和广度遍历
public class TreeSearch{
//二叉树节点的定义
public static class BinaryTreeNode{
int value;
BinaryTreeNode left;
BinaryTreeNode right;
//构造函数
public BinaryTreeNode(int v)
{
this.value=v;
}
//第二个构造函数
public BinaryTreeNode(int v,BinaryTreeNode left,BinaryTreeNode right)
{
super();
this.value=v;
this.left=left;
this.right=left;
}
}
//访问二叉树的节点
public static void visit(BinaryTreeNode node)
{
System.out.print(node.value+" ");
}
//********************************************************
//递归实现二叉树的先,中,后序遍历
public static void preOrder(BinaryTreeNode node)
{
if(node!=null)
{
visit(node);
preOrder(node.left);
preOrder(node.right);
}
}
public static void inOrder(BinaryTreeNode node)
{
if(node!=null)
{
inOrder(node.left);
visit(node);
inOrder(node.right);
}
}
public static void postOrder(BinaryTreeNode node)
{
if(node!=null)
{
postOrder(node.left);
postOrder(node.right);
visit(node);
}
}
//*************非递归实现二叉树的先