Binary Tree Code

package com.test; public class BinaryTreeExample { public static void main(String[] args) { new BinaryTreeExample().run(); } static class Node { Node left; Node right; int value; public Node(int value) { this.value = value; } } public void run() { Node rootnode = new Node(25); System.out.println(“Building tree with root value ” + rootnode.value); System.out.println(“=================================”); insert(rootnode, 11); insert(rootnode, 15); insert(rootnode, 16); insert(rootnode, 23); insert(rootnode, 79); System.out.println(); System.out.println(“preorder traversing”); System.out.println(“=================================”); printPreOrder(rootnode); System.out.println(); System.out.println(“postorder traversing”); System.out.println(“=================================”); printPostOrder(rootnode); System.out.println(); System.out.println(“inorder traversing”); System.out.println(“=================================”); printInOrder(rootnode); } // Insert Node: On a binary search tree, we insert a value v, by comparing it to the root. // If v > root, we go right, and else we go left. // We do this until we hit an empty spot in the tree public void insert(Node node, int value) { if (value > node.value) { if (node.right != null) { insert(node.right, value); } else { System.out.println(” Inserted ” + value + ” to right of node ” + node.value); node.right = new Node(value); } } else { if (node.left != null) { insert(node.left, value); } else { System.out.println(” Inserted ” + value + ” to left of node ” + node.value); node.left = new Node(value); } } } // In inorder, the root is visited in the middle. // In-Order: Traverse left node, current node, then right [usually used for binary search trees] public void printInOrder(Node node) { if (node != null) { printInOrder(node.left); System.out.println(“Traversed ” + node.value); printInOrder(node.right); } } // In preorder, the root is visted first. // Pre-Order: Traverse current node, then left node, then right node. public void printPreOrder(Node node) { if (node != null) { System.out.println(“Traversed ” + node.value); printPreOrder(node.left); printPreOrder(node.right); } } // in postorder, the root is visited last // Post-Order: Traverse left node, then right node, then current node. public void printPostOrder(Node node) { if (node != null) { printPostOrder(node.left); printPostOrder(node.right); System.out.println(“Traversed ” + node.value); } } }


Building tree with root value 25
=================================
Inserted 11 to left of node 25
Inserted 15 to right of node 11
Inserted 16 to right of node 15
Inserted 23 to right of node 16
Inserted 79 to right of node 25

preorder traversing
=================================
Traversed 25
Traversed 11
Traversed 15
Traversed 16
Traversed 23
Traversed 79

postorder traversing
=================================
Traversed 23
Traversed 16
Traversed 15
Traversed 11
Traversed 79
Traversed 25

inorder traversing
=================================
Traversed 11
Traversed 15
Traversed 16
Traversed 23
Traversed 25
Traversed 79

http://www.roseindia.net/java/java-get-example/java-binary-tree-code.shtml