package binarytree;
public class Test1 {
static class Node{
int data;
Node left;
Node right;
public Node(int data){
this.data=data;
left=null;
right=null;
}
}
static class BST{
Node root;
//root结点
public BST(Node root){
this.root=root;
}
//插入操作
private Node insert(Node node,int data){
if (null==node){
return new Node(data);
}
if (node.data>data){
node.left=insert(node.left,data);
}else if (node.data<data){
node.right=insert(node.right,data);
}
return node;
}
//插入操作
public void insert(int data){
insert(root,data);
}
}
public static void main(String[] args) {
BST bst = new BST(new Node(1));
bst.insert(2);
bst.insert(0);
bst.insert(4);
bst.insert(60);
preorderTraversal(bst);
}
public static void preorderTraversal(BST bst){
preorderTraversal(bst.root);
}
private static void preorderTraversal(Node node){
if (node==null){
return;
}
//先序遍历
System.out.println(node.data);
preorderTraversal(node.left);
preorderTraversal(node.right);
}
}
移动打印到两个方法中间是中序遍历。
移动打印到两个方法的后面就是后序遍历。