package sortTest;
// 树节点
class treeNode{
int data;
treeNode left = null;
treeNode right = null;
public treeNode(int data) {
this.data = data;
}
}
public class sortTree {
private static treeNode root; //根节点
public sortTree() {
root = null;
}
public static void insert(int data) { //插入树节点,形成二叉排序树
treeNode node = new treeNode(data);
if(root == null) {
root = node;
}else {
treeNode current = root;
treeNode parent;
while(true) {
parent = current;
if(data < current.data) {
current = current.left;
if(current == null) {
parent.left = node;
return;
}
}else{
current = current.right;
if(current == null) {
parent.right = node;
return;
}
}
}
}
}
public void creatTree(int[] a) {
for(int i=0;i<a.length;i++) {
insert(a[i]);
}
}
//中序遍历
public void inOrder(treeNode localNode) {
if(localNode != null) {
inOrder(localNode.left);
System.out.print(localNode.data + " ");
inOrder(localNode.right);
}
}
//先序遍历
public static void preOrder(treeNode localNode) {
if(localNode != null) {
System.out.print(localNode.data + " ");
preOrder(localNode.left);
preOrder(localNode.right);
}
}
//后序遍历
public static void postOrder(treeNode localNode) {
if(localNode != null) {
postOrder(localNode.left);
postOrder(localNode.right);
System.out.print(localNode.data + " ");
}
}
public static void main(String[] args) {
int[] a = {2,8,7,4,9,3,1,6,7,5};
sortTree s = new sortTree();
s.creatTree(a);
//中序遍历
System.out.println("中序遍历:");
s.inOrder(s.root);
//先序遍历
System.out.println();
System.out.println("先序遍历:");
s.preOrder(s.root);
//后序遍历
System.out.println();
System.out.println("后序遍历:");
s.postOrder(s.root);
}
}