## Create Binary Tree - Preorder, Inorder and Postorder Traversal

 Lets see simple java code to create Binary Tree and all 3 traversals like Preorder, Inorder and Postorder. Used 2 classes called BST (used for binary tree node) and BinaryTree to construct Binary Tree and for traversals.
```class BST {

BST left; // Left subtree
BST right; // Right subtree
int data; // Element

public BST(int data) {
this.data = data;
}
}
```

```public class BinaryTree {

public static void main(String[] args) {

int val[] = new int[] { 4, 5, 8, 100, 3, 2, 9, 1, 7, 6 };;

BST root = new BST(val[0]); // Initialize root with 1ft element
BST tmpRoot = root; // Temporary root node

for (int i = 1; i < val.length; i++) {

BST lastNode = getLastNode(tmpRoot, val[i]);

if (val[i] > lastNode.data) {

BST tmp = new BST(val[i]);
lastNode.right = tmp;

} else {

BST tmp = new BST(val[i]);
lastNode.left = tmp;
}
}

System.out.print("\n\n PREORDER :::::: ");
preOrderTraversal(root);

System.out.print("\n\n INORDER ::::::: ");
inOrderTraversal(root);

System.out.print("\n\n POSTORDR :::::: ");
postOrderTraversal(root);
}

public static BST getLastNode(BST root, int val) {

if (val > root.data) {

if (root.right == null) {
return root;
} else
return getLastNode(root.right, val);
} else {

if (root.left == null) {
return root;
} else
return getLastNode(root.left, val);
}
}

// BST Pre-order traversal
public static void preOrderTraversal(BST root) {

System.out.print(root.data + ", ");

if (root.left != null) {
preOrderTraversal(root.left);
}
if (root.right != null) {
preOrderTraversal(root.right);
}
}

// BST in-order traversal
public static void inOrderTraversal(BST root) {

if (root.left != null) {
inOrderTraversal(root.left);
}

System.out.print(root.data + ", ");

if (root.right != null) {
inOrderTraversal(root.right);
}
}

// BST post-order traversal
public static void postOrderTraversal(BST root) {

if (root.left != null) {
postOrderTraversal(root.left);
}
if (root.right != null) {
postOrderTraversal(root.right);
}
System.out.print(root.data + ", ");
}
}
```

OUTPUT:

``` PREORDER :::::: 4, 3, 2, 1, 5, 8, 7, 6, 100, 9,

INORDER ::::::: 1, 2, 3, 4, 5, 6, 7, 8, 9, 100,

POSTORDR :::::: 1, 2, 3, 6, 7, 9, 100, 8, 5, 4,
```