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:
Returning Custom Status Codes from Spring Controllers
Java Program to Create a Random Graph Using Random Edge Generation
A Quick Guide to Spring MVC Matrix Variables
Java Program to Describe the Representation of Graph using Incidence List
Abstract class và Interface trong Java
Spring WebClient and OAuth2 Support
Spring Boot - Tomcat Port Number
Java Program to Solve a Matching Problem for a Given Specific Case
Spring’s RequestBody and ResponseBody Annotations
Java Program to Implement LinkedHashMap API
Multi Dimensional ArrayList in Java
Java Program to Delete a Particular Node in a Tree Without Using Recursion
Using a Mutex Object in Java
Java Program to Implement Sparse Array
Split a String in Java
Lấy ngày giờ hiện tại trong Java
Spring Boot - Rest Controller Unit Test
Java Map With Case-Insensitive Keys
Limiting Query Results with JPA and Spring Data JPA
Introduction to the Functional Web Framework in Spring 5
Java Program to Represent Graph Using 2D Arrays
Hướng dẫn sử dụng luồng vào ra ký tự trong Java
Removing all duplicates from a List in Java
Java – Random Long, Float, Integer and Double
Java Program to Find Nearest Neighbor for Static Data Set
Java – Write an InputStream to a File
How To Serialize and Deserialize Enums with Jackson
Tạo ứng dụng Java RESTful Client với thư viện OkHttp
Spring Boot - Cloud Configuration Server
Java Program to Implement Quick Sort Using Randomization
Validations for Enum Types
Java Program to Implement Queue using Two Stacks