Java Program to Implement Double Order Traversal of a Binary Tree

This is a Java Program to perform Double Order traversal over binary tree.
Recurse through:
1. Visit root of (sub)tree.
2. Visit left sub-tree.
3. Revisit root of (sub)tree.
4. Visit right sub-tree.

Here is the source code of the Java Program to Implement Double Order Traversal of a 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 doubleorder 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 doubleorder()
	{
		doubleorder(root);
	}
 
	private void doubleorder(BinarySearchTreeNodes r)
	{
		if(r != null)
		{
			System.out.print(r.getData() + " ");
			doubleorder(r.getLeft());
			System.out.print(r.getData() + " ");
			doubleorder(r.getRight());
		}
	}
}
 
public class Doubleorder_Traversal
{
    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("\nDouble-order   : ");
        bst.doubleorder();
 
        scan.close();
    }
}

Output:

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

Related posts:

Redirect to Different Pages after Login with Spring Security
Using the Map.Entry Java Class
Java Program to Implement Binary Heap
Java Program to Implement ArrayBlockingQueue API
Spring MVC Content Negotiation
Filtering and Transforming Collections in Guava
Spring AMQP in Reactive Applications
Deploy a Spring Boot WAR into a Tomcat Server
Add Multiple Items to an Java ArrayList
Java Program to Implement LinkedBlockingDeque API
Converting Between Byte Arrays and Hexadecimal Strings in Java
Interface trong Java 8 – Default method và Static method
Java Program to Use Dynamic Programming to Solve Approximate String Matching
Spring MVC Custom Validation
Java Program to Implement Stein GCD Algorithm
Map Serialization and Deserialization with Jackson
Java Program to Implement Rolling Hash
Java Program to Check Whether an Input Binary Tree is the Sub Tree of the Binary Tree
Java Program to Construct a Random Graph by the Method of Random Edge Selection
So sánh HashSet, LinkedHashSet và TreeSet trong Java
Adding Shutdown Hooks for JVM Applications
The Child and Binary Tree
OAuth 2.0 Resource Server With Spring Security 5
Java Program to Generate All Possible Subsets with Exactly k Elements in Each Subset
Java Program to Perform Polygon Containment Test
Merging Two Maps with Java 8
Introduction to Spring MVC HandlerInterceptor
Lập trình đa luồng với CompletableFuture trong Java 8
Custom JUnit 4 Test Runners
Marker Interface trong Java
Tìm hiểu về xác thực và phân quyền trong ứng dụng
Spring MVC Tutorial