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:
Java Program to Find the Shortest Path Between Two Vertices Using Dijkstra’s Algorithm
Java Program to Construct a Random Graph by the Method of Random Edge Selection
Hướng dẫn Java Design Pattern – Abstract Factory
Quick Guide to Spring Controllers
Java Program to Implement Stack API
The Dining Philosophers Problem in Java
Java Program to Implement Find all Back Edges in a Graph
Spring 5 WebClient
Summing Numbers with Java Streams
Hướng dẫn Java Design Pattern – Decorator
Java Program to Implement Gauss Jordan Elimination
Collect a Java Stream to an Immutable Collection
Guide to Escaping Characters in Java RegExps
Java Program to Implement Adjacency Matrix
Quick Intro to Spring Cloud Configuration
Getting Started with Stream Processing with Spring Cloud Data Flow
Test a REST API with Java
Java Program to Compute Determinant of a Matrix
A Comparison Between Spring and Spring Boot
How to Define a Spring Boot Filter?
Guide to Java 8’s Collectors
Java Program to Implement EnumMap API
Spring Boot - Enabling HTTPS
Java Program to Find kth Largest Element in a Sequence
Spring Data MongoDB Transactions
Java Program to Implement VList
What is Thread-Safety and How to Achieve it?
Java TreeMap vs HashMap
Java Program to Check if a Given Binary Tree is an AVL Tree or Not
Java Program to Implement Hash Tables with Linear Probing
Java Program to Implement Sieve Of Eratosthenes
Java Program to Implement Wagner and Fisher Algorithm for online String Matching