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:
Simplify the DAO with Spring and Java Generics
Guide to the Java Clock Class
Template Engines for Spring
Java Program to Implement Lloyd’s Algorithm
Loại bỏ các phần tử trùng trong một ArrayList như thế nào trong Java 8?
How to Get a Name of a Method Being Executed?
Đồng bộ hóa các luồng trong Java
Java Program to Apply DFS to Perform the Topological Sorting of a Directed Acyclic Graph
A Guide to the Java LinkedList
Java Program to Implement Borwein Algorithm
Service Registration with Eureka
Easy Ways to Write a Java InputStream to an OutputStream
Java Program to Implement the Edmond’s Algorithm for Maximum Cardinality Matching
New Features in Java 10
Convert String to Byte Array and Reverse in Java
Dockerizing a Spring Boot Application
Spring Boot - Database Handling
Tránh lỗi NullPointerException trong Java như thế nào?
Java Program to Implement Weight Balanced Tree
Using JWT with Spring Security OAuth
Converting String to Stream of chars
Java Program to Generate Random Numbers Using Multiply with Carry Method
Java Program to Implement VList
Creating Docker Images with Spring Boot
Java Program to Implement ArrayBlockingQueue API
Creating a Generic Array in Java
Java Program to Implement Miller Rabin Primality Test Algorithm
Guide to PriorityBlockingQueue in Java
Server-Sent Events in Spring
Spring Security and OpenID Connect
Java Program to Check if a Matrix is Invertible
OAuth2 Remember Me with Refresh Token