二叉排序树具有性质:
① 如果左子树不为空,则左子树上的所有节点的值均小于根节点的值;②如果右子树不为空,则右子树上所有节点的值均大于根节点的值;③左右子树均为二叉排序树。
//树节点类
class Node{
public int data;//节点的数值
public Node left;//左子节点
public Node right;//右子节点
//构造函数
public Node(){
}
public Node(int data){
this.data=data;
this.left=null;
this.right=null;
}
}
//二叉树遍历类
class OrderBinTree{
/*
* 先序遍历-->根节点,左子树,右子树(递归实现)
*/
public static void preOrder(Node root){
if(root!=null){
System.out.print(root.data+" ");//输出根节点数值
preOrder(root.left);//左子树
preOrder(root.right);//右子树
}
}
/*
* 中序遍历-->左子树,根节点,右子树(递归实现)
*/
public static void inOrder(Node root){
if(root!=null){
inOrder(root.left);//左子树
System.out.print(root.data+" ");//输出根节点数值
inOrder(root.right);//右子树
}