This is a java program to construct a binary tree and perform in-order traversal of the constructed binary tree.
Nodes visited are in the order:
visit Left node
visit Root node
visit Right node
Here is the source code of the Java Program to Perform Inorder Non-Recursive Traversal of a Given 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 non recursive in order traversal of Binary Search Tree import java.util.Scanner; import java.util.Stack; class BinarySearchTreeNode { BinarySearchTreeNode left, right; int data; public BinarySearchTreeNode() { left = null; right = null; data = 0; } public BinarySearchTreeNode(int n) { left = null; right = null; data = n; } public void setLeft(BinarySearchTreeNode n) { left = n; } public void setRight(BinarySearchTreeNode n) { right = n; } public BinarySearchTreeNode getLeft() { return left; } public BinarySearchTreeNode getRight() { return right; } public void setData(int d) { data = d; } public int getData() { return data; } } class BinarySearchTreeOperations { private BinarySearchTreeNodes root; public BinarySearchTreeOperations() { 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 inorder() { inorder(root); } private void inorder(BinarySearchTreeNodes r) { if (r == null) return; Stack<BinarySearchTreeNodes> stack = new Stack<BinarySearchTreeNodes>(); while (!stack.isEmpty() || r != null) { if (r != null) { stack.push(r); r = r.left; } else { r = stack.pop(); System.out.print(r.data + " "); r = r.right; } } } } public class Inorder_NonRecursive_BST { public static void main(String[] args) { Scanner scan = new Scanner(System.in); BinarySearchTreeOperations bst = new BinarySearchTreeOperations(); 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("\nIn order : "); bst.inorder(); scan.close(); } }
Output:
$ javac Inorder_NonRecursive_BST.java $ java Inorder_NonRecursive_BST Enter the first 10 elements of the tree 12 4 10 13 15 46 78 98 45 12 In order : 4 10 12 12 13 15 45 46 78 98
Related posts:
Java Program to Implement Disjoint Sets
Java Program to Find Hamiltonian Cycle in an UnWeighted Graph
Java Program to Represent Graph Using Incidence List
Chuyển đổi Array sang ArrayList và ngược lại
Java Program to Create a Random Graph Using Random Edge Generation
Java 8 Predicate Chain
Intro to the Jackson ObjectMapper
Converting Java Date to OffsetDateTime
Java Program to Find Location of a Point Placed in Three Dimensions Using K-D Trees
Reactive Flow with MongoDB, Kotlin, and Spring WebFlux
Hướng dẫn Java Design Pattern – Decorator
Assertions in JUnit 4 and JUnit 5
An Introduction to Java.util.Hashtable Class
Luồng Daemon (Daemon Thread) trong Java
Properties with Spring and Spring Boot
A Guide to the Java ExecutorService
Database Migrations with Flyway
Java Program to Perform Finite State Automaton based Search
Posting with HttpClient
How to Iterate Over a Stream With Indices
Working with Kotlin and JPA
Static Content in Spring WebFlux
Introduction to the Java NIO2 File API
Spring Cloud Bus
Custom JUnit 4 Test Runners
Encode a String to UTF-8 in Java
Using the Map.Entry Java Class
Java 8 Streams peek() API
Java Program to Decode a Message Encoded Using Playfair Cipher
Adding Shutdown Hooks for JVM Applications
Upload and Display Excel Files with Spring MVC
Java Program to Generate All Possible Combinations of a Given List of Numbers