Hackerss.com

hackerss
hackerss

Posted on

Inorder traversal of binary tree in Java

Inorder traversal of binary tree - Java:


/**
 * This class is used to create a binary tree and perform inorder traversal.
 * @author 
 * @version 1.0
 */
public class BinaryTree {
    /**
     * This method is used to create a binary tree.
     * @param root root of the tree.
     * @param data data to be inserted in the tree.
     */
    public void insert(Node root, int data) {
        if (root == null) {
            root = new Node(data);
        } else if (data <= root.data) {
            if (root.left != null) {
                insert(root.left, data);
            } else {
                root.left = new Node(data);
            }
        } else {
            if (root.right != null) {
                insert(root.right, data);
            } else {
                root.right = new Node(data);
            }
        }
    }

    /**
     * This method is used to perform inorder traversal of the binary tree.
     * @param root root of the tree.
     */
    public void inorderTraversal(Node root) {
        if (root != null) {
            inorderTraversal(root.left);
            System.out.print(root.data + " ");
            inorderTraversal(root.right);
        }
    }

    /**
     * This method is used to create a binary tree and perform inorder traversal.
     * @param args command line arguments (ignored).
     */
    public static void main(String[] args) {

        BinaryTree bt = new BinaryTree();

        Node root = null;

        bt.insert(root, 10);

        bt.insert(root, 20);

        bt.insert(root, 30);

        bt.insert(root, 40);

        bt.insert(root, 50);

        bt.insert(root, 60);

        bt.inorderTraversal(root);

    }

    /**
     * This class is used to create a node of the binary tree.
     */
    class Node {

        int data;

        Node left;

        Node right;

        /**
         * This constructor is used to create a node of the binary tree.
         * @param data data to be inserted in the node.
         */
        public Node(int data) {

            this.data = data;

            left = null;

            right = null;

        }

    }
}
Enter fullscreen mode Exit fullscreen mode

Top comments (0)