Java Program to Perform Preorder Recursive Traversal of a Given Binary Tree

This is a java program to construct a binary tree and perform preorder traversal of the constructed binary tree.
Nodes visited are in the order:
visit Root node
visit Left node
visit Right node

Here is the source code of the Java Program to Perform Preorder Recursive Traversal of a Given Binary Tree. The Java program is successfully compiled and run on a Windows system. The program output is also shown below.

//This is a java program to implement recursive preorder traversal of the Binary Search Tree
import java.util.Scanner;
 
class BinarySearchTreeNodes
{
    BinarySearchTreeNodes left, right;
    int      data;
 
    public BinarySearchTreeNodes()
    {
        left = null;
        right = null;
        data = 0;
    }
 
    public BinarySearchTreeNodes(int n)
    {
        left = null;
        right = null;
        data = n;
    }
 
    public void setLeft(BinarySearchTreeNodes n)
    {
        left = n;
    }
 
    public void setRight(BinarySearchTreeNodes n)
    {
        right = n;
    }
 
    public BinarySearchTreeNodes getLeft()
    {
        return left;
    }
 
    public BinarySearchTreeNodes getRight()
    {
        return right;
    }
 
    public void setData(int d)
    {
        data = d;
    }
 
    public int getData()
    {
        return data;
    }
}
 
class BinarySearchTree
{
    private BinarySearchTreeNodes root;
 
    public BinarySearchTree()
    {
        root = null;
    }
 
    public boolean isEmpty()
    {
        return root == null;
    }
 
    public void insert(int data)
    {
        root = insert(root, data);
    }
 
    private BinarySearchTreeNodes insert(BinarySearchTreeNodes node, int data)
    {
        if (node == null)
            node = new BinarySearchTreeNodes(data);
        else
        {
            if (data <= node.getData())
                node.left = insert(node.left, data);
            else
                node.right = insert(node.right, data);
        }
        return node;
    }
 
    public void preorder()
    {
        preorder(root);
    }
 
    private void preorder(BinarySearchTreeNodes r)
    {
        if (r != null)
        {
            System.out.print(r.getData() + " ");
            preorder(r.getLeft());
            preorder(r.getRight());
        }
    }
}
 
public class Preorder_Recursive_BST
{
    public static void main(String[] args)
    {
        Scanner scan = new Scanner(System.in);
        BinarySearchTree bst = new BinarySearchTree();
        System.out.println("Enter the first 10 elements of the tree\n");
        int N = 10;
        for (int i = 0; i < N; i++)
            bst.insert(scan.nextInt());
 
        System.out.print("\nPre order  : ");
        bst.preorder();
 
        scan.close();
    }
}

Output:

$ javac Preorder_Recursive_BST.java
$ java Preorder_Recursive_BST
 
Enter the first 10 elements of the tree
 
12 10 11 03 15 19 02 01 04 70
 
Pre order  : 12 10 3 2 1 4 11 15 19 70

Related posts:

Java Program to Find ith Largest Number from a Given List Using Order-Statistic Algorithm
Spring 5 Testing with @EnabledIf Annotation
Java Program to Generate a Sequence of N Characters for a Given Specific Case
Introduction to Project Reactor Bus
String Joiner trong Java 8
Default Password Encoder in Spring Security 5
The DAO with Spring and Hibernate
Hướng dẫn Java Design Pattern – Command
Loại bỏ các phần tử trùng trong một ArrayList như thế nào?
Java Program to Check Whether a Directed Graph Contains a Eulerian Path
Debug a HttpURLConnection problem
Guide to Apache Commons CircularFifoQueue
Java Program to Implement Pairing Heap
Hướng dẫn Java Design Pattern – Mediator
Java 9 Stream API Improvements
Logout in an OAuth Secured Application
Introduction to Spring Method Security
Dockerizing a Spring Boot Application
An Intro to Spring Cloud Zookeeper
Marker Interface trong Java
Deque và ArrayDeque trong Java
Java Program to Implement Branch and Bound Method to Perform a Combinatorial Search
Java Program to Solve Travelling Salesman Problem for Unweighted Graph
Cachable Static Assets with Spring MVC
Guide to Java 8’s Collectors
Java Program to Implement Slicker Algorithm that avoids Triangulation to Find Area of a Polygon
Java Program to Implement Adjacency Matrix
Quick Guide to @RestClientTest in Spring Boot
Validations for Enum Types
Java Program to Apply Above-Below-on Test to Find the Position of a Point with respect to a Line
Introduction to Liquibase Rollback
Spring Autowiring of Generic Types