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:
A Custom Data Binder in Spring MVC
Control the Session with Spring Security
Java Program to Implement LinkedList API
Spring Boot Integration Testing with Embedded MongoDB
Using a Custom Spring MVC’s Handler Interceptor to Manage Sessions
Spring WebClient vs. RestTemplate
Java Program to Implement Johnson’s Algorithm
Error Handling for REST with Spring
Java Program to Implement vector
Java – Write a Reader to File
Java Program to Perform the Shaker Sort
Spring Boot Actuator
Add Multiple Items to an Java ArrayList
The Difference Between Collection.stream().forEach() and Collection.forEach()
Java Program to Implement Stein GCD Algorithm
Spring Boot - Admin Client
Java Program to Implement Quick Hull Algorithm to Find Convex Hull
Hướng dẫn Java Design Pattern – DAO
Apache Commons Collections SetUtils
Java Copy Constructor
The Thread.join() Method in Java
Tìm hiểu về xác thực và phân quyền trong ứng dụng
Exploring the Spring 5 WebFlux URL Matching
Write/Read cookies using HTTP and Read a file from the internet
Java Program to Perform Naive String Matching
Giới thiệu Google Guice – Aspect Oriented Programming (AOP)
Case-Insensitive String Matching in Java
New Features in Java 8
Hướng dẫn Java Design Pattern – Template Method
Java Program to Implement Find all Forward Edges in a Graph
Java Streams vs Vavr Streams
Mapping a Dynamic JSON Object with Jackson