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:
An Intro to Spring Cloud Contract
Summing Numbers with Java Streams
Java Program to Check if a Matrix is Invertible
Java Program to Implement Self organizing List
An Intro to Spring Cloud Zookeeper
Spring Boot - Enabling Swagger2
Java Program to Perform Insertion in a BST
Java Program to Implement Splay Tree
Java Program to Apply Above-Below-on Test to Find the Position of a Point with respect to a Line
Java Program to Implement LinkedHashSet API
Tips for dealing with HTTP-related problems
Spring Boot - Admin Client
The DAO with Spring and Hibernate
A Guide to Iterator in Java
A Quick Guide to Spring MVC Matrix Variables
How to Get the Last Element of a Stream in Java?
Java Program to Implement Stack API
Hướng dẫn Java Design Pattern – Visitor
The Spring @Controller and @RestController Annotations
Tiêu chuẩn coding trong Java (Coding Standards)
Mockito and JUnit 5 – Using ExtendWith
Generic Constructors in Java
Giới thiệu Google Guice – Binding
Java Program to Implement Shunting Yard Algorithm
Hướng dẫn Java Design Pattern – Template Method
Java Program to Implement Brent Cycle Algorithm
How to Replace Many if Statements in Java
Abstract class và Interface trong Java
Java Program to Find the Edge Connectivity of a Graph
Từ khóa this và super trong Java
Introduction to Thread Pools in Java
Java Program to Implement Sparse Matrix