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 the One Time Pad Algorithm
Hướng dẫn Java Design Pattern – Intercepting Filter
Java Optional as Return Type
Tạo số và chuỗi ngẫu nhiên trong Java
Spring Security OAuth2 – Simple Token Revocation
Immutable Objects in Java
Call Methods at Runtime Using Java Reflection
New Features in Java 8
Spring Data MongoDB – Indexes, Annotations and Converters
Java Program to Implement Red Black Tree
How to use the Spring FactoryBean?
Java Program to Implement Graham Scan Algorithm to Find the Convex Hull
Binary Numbers in Java
Java Program to Implement Levenshtein Distance Computing Algorithm
How to Round a Number to N Decimal Places in Java
Java Program to Implement Branch and Bound Method to Perform a Combinatorial Search
Java – Try with Resources
A Guide to TreeSet in Java
String Operations with Java Streams
Jackson JSON Views
Guava – Join and Split Collections
Java Switch Statement
Create Java Applet to Simulate Any Sorting Technique
How to Get All Dates Between Two Dates?
Java Program to Find the Edge Connectivity of a Graph
Java Program to Find the Peak Element of an Array O(n) time (Naive Method)
Spring 5 and Servlet 4 – The PushBuilder
Java Program to Implement Rolling Hash
Java Program to do a Breadth First Search/Traversal on a graph non-recursively
Spring Data – CrudRepository save() Method
Stack Memory and Heap Space in Java
Spring Boot - Build Systems