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:
How to Get the Last Element of a Stream in Java?
Java Program to Solve a Matching Problem for a Given Specific Case
Java Program to Implement LinkedBlockingDeque API
Creating Docker Images with Spring Boot
Assert an Exception is Thrown in JUnit 4 and 5
Spring Web Annotations
Hướng dẫn Java Design Pattern – Singleton
Custom HTTP Header with the HttpClient
Spring 5 and Servlet 4 – The PushBuilder
Java Web Services – Jersey JAX-RS – REST và sử dụng REST API testing tools với Postman
Spring Boot: Customize Whitelabel Error Page
Java Program to Implement Iterative Deepening
Guava – Join and Split Collections
OAuth2 for a Spring REST API – Handle the Refresh Token in AngularJS
Java Program to Implement RenderingHints API
A Guide to Java HashMap
Rate Limiting in Spring Cloud Netflix Zuul
Java Program to Find a Good Feedback Vertex Set
Command-Line Arguments in Java
Introduction to Thread Pools in Java
Introduction to the Java ArrayDeque
Spring Boot Integration Testing with Embedded MongoDB
Join and Split Arrays and Collections in Java
Guide to Spring @Autowired
Java Program to Implement Karatsuba Multiplication Algorithm
Introduction to Spring MVC HandlerInterceptor
Spring Data Java 8 Support
The XOR Operator in Java
Java Program to Perform Inorder Non-Recursive Traversal of a Given Binary Tree
Java Program to Find Minimum Number of Edges to Cut to make the Graph Disconnected
Java Program to Implement Hash Trie
The Modulo Operator in Java