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 Dijkstra’s Algorithm using Queue
Java Program to Find SSSP (Single Source Shortest Path) in DAG (Directed Acyclic Graphs)
Java Perform to a 2D FFT Inplace Given a Complex 2D Array
Query Entities by Dates and Times with Spring Data JPA
Java Program to Construct K-D Tree for 2 Dimensional Data
Mix plain text and HTML content in a mail
Tạo chương trình Java đầu tiên sử dụng Eclipse
Phân biệt JVM, JRE, JDK
Java Program to Implement Lloyd’s Algorithm
Spring Web Annotations
Guide to Apache Commons CircularFifoQueue
Convert a Map to an Array, List or Set in Java
Java Program to Implement Treap
Java Program for Topological Sorting in Graphs
Lập trình đa luồng với Callable và Future trong Java
Form Validation with AngularJS and Spring MVC
Wrapper Classes in Java
Summing Numbers with Java Streams
Java Program to add two large numbers using Linked List
Spring 5 WebClient
Lập trình đa luồng với CompletableFuture trong Java 8
Giới thiệu Java 8
Sending Emails with Java
Converting a Stack Trace to a String in Java
Understanding Memory Leaks in Java
Java Program to find the maximum subarray sum O(n^2) time(naive method)
DynamoDB in a Spring Boot Application Using Spring Data
Java Program to Implement Interval Tree
Spring Security Basic Authentication
Java Program to Implement the Binary Counting Method to Generate Subsets of a Set
Java Program to Create a Balanced Binary Tree of the Incoming Data
Java Program to Implement Binary Heap