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:
Disable DNS caching
Sort a HashMap in Java
Shuffling Collections In Java
Guava – Join and Split Collections
Cài đặt và sử dụng Swagger UI
Spring Security 5 for Reactive Applications
Java Program to Implement PriorityBlockingQueue API
Java Program to Compute Discrete Fourier Transform Using the Fast Fourier Transform Approach
Guide to java.util.concurrent.Future
Java Program to Create a Minimal Set of All Edges Whose Addition will Convert it to a Strongly Conne...
Introduction to Spring Security Expressions
Apache Commons Collections MapUtils
JUnit 5 for Kotlin Developers
Check If Two Lists are Equal in Java
Spring 5 and Servlet 4 – The PushBuilder
Jackson – Unmarshall to Collection/Array
RestTemplate Post Request with JSON
Marker Interface trong Java
Java Program to Implement Nth Root Algorithm
Java Program to Implement the Checksum Method for Small String Messages and Detect
Java Streams vs Vavr Streams
An Intro to Spring Cloud Zookeeper
A Guide to HashSet in Java
Beans and Dependency Injection
Java Program to Check Multiplicability of Two Matrices
Tạo chương trình Java đầu tiên sử dụng Eclipse
Spring Boot - Enabling HTTPS
Overview of Spring Boot Dev Tools
Hướng dẫn Java Design Pattern – Intercepting Filter
Spring Boot - OAuth2 with JWT
OAuth2 for a Spring REST API – Handle the Refresh Token in Angular
Tổng quan về ngôn ngữ lập trình java