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:
Mapping a Dynamic JSON Object with Jackson
Java Program to Compute the Volume of a Tetrahedron Using Determinants
Comparing Long Values in Java
Java Program to Implement Binary Heap
Java Program to Implement HashTable API
Java Program to Implement Hash Tables chaining with Singly Linked Lists
Java Program to Implement String Matching Using Vectors
Java Program to Implement Cubic convergence 1/pi Algorithm
Java Program to Implement Hopcroft Algorithm
Handle EML file with JavaMail
Java Program to Implement Ternary Tree
Intersection of Two Lists in Java
Làm thế nào tạo instance của một class mà không gọi từ khóa new?
Map Interface trong java
Java Program to Find Number of Spanning Trees in a Complete Bipartite Graph
Java Program to Perform Preorder Non-Recursive Traversal of a Given Binary Tree
Một số tính năng mới về xử lý ngoại lệ trong Java 7
Introduction to Spliterator in Java
So sánh ArrayList và Vector trong Java
Java Program to Implement the Alexander Bogomolny’s UnOrdered Permutation Algorithm for Elements Fro...
Spring AMQP in Reactive Applications
Java Program to Implement Slicker Algorithm that avoids Triangulation to Find Area of a Polygon
So sánh HashMap và HashSet trong Java
Hướng dẫn Java Design Pattern – Facade
Java 8 Predicate Chain
Using JWT with Spring Security OAuth
Java Program to Compute the Area of a Triangle Using Determinants
Java Program to Implement Naor-Reingold Pseudo Random Function
How to Use if/else Logic in Java 8 Streams
Hướng dẫn Java Design Pattern – Intercepting Filter
Lấy ngày giờ hiện tại trong Java
Spring Boot Configuration with Jasypt