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:
Jackson – Bidirectional Relationships
Java – Try with Resources
Java Program to Implement Park-Miller Random Number Generation Algorithm
Hướng dẫn sử dụng luồng vào ra nhị phân trong Java
Spring – Injecting Collections
Java Program to Solve Travelling Salesman Problem for Unweighted Graph
Tìm hiểu về xác thực và phân quyền trong ứng dụng
Request Method Not Supported (405) in Spring
Java Program to Perform Matrix Multiplication
Spring MVC Async vs Spring WebFlux
Java 8 Collectors toMap
@Lookup Annotation in Spring
Spring RestTemplate Request/Response Logging
Jackson JSON Views
Auditing with JPA, Hibernate, and Spring Data JPA
ThreadPoolTaskExecutor corePoolSize vs. maxPoolSize
HttpClient Connection Management
Pagination and Sorting using Spring Data JPA
Spring 5 WebClient
Concurrent Test Execution in Spring 5
Hướng dẫn Java Design Pattern – Template Method
Spring Boot - OAuth2 with JWT
Quick Guide to the Java StringTokenizer
Sử dụng CyclicBarrier trong Java
Guava Collections Cookbook
Simplify the DAO with Spring and Java Generics
Java Program to Perform Partition of an Integer in All Possible Ways
Spring REST API + OAuth2 + Angular
Transaction Propagation and Isolation in Spring @Transactional
Working with Kotlin and JPA
Java Program to implement Dynamic Array
REST Pagination in Spring