This is a Java Program to find minimum value of a Binary Search Tree. A binary search tree (BST), sometimes also called an ordered or sorted binary tree, is a node-based binary tree data structure which has the following properties:
i) The left subtree of a node contains only nodes with keys less than the node’s key.
ii) The right subtree of a node contains only nodes with keys greater than the node’s key.
iii) The left and right subtree must each also be a binary search tree.
iv) There must be no duplicate nodes.
Here is the source code of the Java program to minimum value of a Binary Search Tree. The Java program is successfully compiled and run on a Windows system. The program output is also shown below.
/*
* Java Program to Find the Minimum value of Binary Search Tree
*/
import java.util.Scanner;
/* Class BSTNode */
class BSTNode
{
BSTNode left, right;
int data;
/* Constructor */
public BSTNode()
{
left = null;
right = null;
data = 0;
}
/* Constructor */
public BSTNode(int n)
{
left = null;
right = null;
data = n;
}
}
/* Class BST */
class BST
{
private BSTNode root;
/* Constructor */
public BST()
{
root = null;
}
/* Functions to insert data */
public void insert(int data)
{
root = insert(root, data);
}
/* Function to insert data recursively */
private BSTNode insert(BSTNode node, int data)
{
if (node == null)
node = new BSTNode(data);
else
{
if (data <= node.data)
node.left = insert(node.left, data);
else
node.right = insert(node.right, data);
}
return node;
}
/* Function to return least value */
public int minValue()
{
return minValue(root);
}
/* Function to return least value recursively */
private int minValue(BSTNode r)
{
if (r.left == null)
return r.data;
return minValue(r.left);
}
public void inorder()
{
inorder(root);
}
private void inorder(BSTNode r)
{
if (r != null)
{
inorder(r.left);
System.out.print(r.data +" ");
inorder(r.right);
}
}
/* Function for preorder traversal */
public void preorder()
{
preorder(root);
}
private void preorder(BSTNode r)
{
if (r != null)
{
System.out.print(r.data +" ");
preorder(r.left);
preorder(r.right);
}
}
/* Function for postorder traversal */
public void postorder()
{
postorder(root);
}
private void postorder(BSTNode r)
{
if (r != null)
{
postorder(r.left);
postorder(r.right);
System.out.print(r.data +" ");
}
}
}
/* Class MinValueBST */
public class MinValueBST
{
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
/* Creating object of BST */
BST bst = new BST();
System.out.println("Minimum Value of Binary Search Tree Test\n");
char ch;
/* Accept input */
do
{
System.out.println("Enter integer element to insert");
bst.insert( scan.nextInt() );
/* Display tree */
System.out.print("\nPost order : ");
bst.postorder();
System.out.print("\nPre order : ");
bst.preorder();
System.out.print("\nIn order : ");
bst.inorder();
System.out.println("\nDo you want to continue (Type y or n) \n");
ch = scan.next().charAt(0);
} while (ch == 'Y'|| ch == 'y');
System.out.println("\nMnimum value of the Binary Search Tree is : "+ bst.minValue());
}
}
Minimum Value of Binary Search Tree Test Enter integer element to insert 56 Post order : 56 Pre order : 56 In order : 56 Do you want to continue (Type y or n) y Enter integer element to insert 23 Post order : 23 56 Pre order : 56 23 In order : 23 56 Do you want to continue (Type y or n) y Enter integer element to insert 80 Post order : 23 80 56 Pre order : 56 23 80 In order : 23 56 80 Do you want to continue (Type y or n) y Enter integer element to insert 12 Post order : 12 23 80 56 Pre order : 56 23 12 80 In order : 12 23 56 80 Do you want to continue (Type y or n) y Enter integer element to insert 234 Post order : 12 23 234 80 56 Pre order : 56 23 12 80 234 In order : 12 23 56 80 234 Do you want to continue (Type y or n) y Enter integer element to insert 546 Post order : 12 23 546 234 80 56 Pre order : 56 23 12 80 234 546 In order : 12 23 56 80 234 546 Do you want to continue (Type y or n) y Enter integer element to insert 6 Post order : 6 12 23 546 234 80 56 Pre order : 56 23 12 6 80 234 546 In order : 6 12 23 56 80 234 546 Do you want to continue (Type y or n) y Enter integer element to insert 32 Post order : 6 12 32 23 546 234 80 56 Pre order : 56 23 12 6 32 80 234 546 In order : 6 12 23 32 56 80 234 546 Do you want to continue (Type y or n) n Mnimum value of the Binary Search Tree is : 6
Related posts:
Sorting in Java
Introduction to Project Reactor Bus
Java Program to Implement Find all Back Edges in a Graph
Phương thức forEach() trong java 8
Java Program to Implement Variable length array
Giới thiệu Google Guice – Aspect Oriented Programming (AOP)
Check If a File or Directory Exists in Java
Spring @Primary Annotation
Refactoring Design Pattern với tính năng mới trong Java 8
Spring Data Java 8 Support
Giới thiệu HATEOAS
Chuyển đổi giữa các kiểu dữ liệu trong Java
Java Program to Find Second Smallest of n Elements with Given Complexity Constraint
Java Program to Implement Euclid GCD Algorithm
Java Program to Implement Fenwick Tree
Lớp Collectors trong Java 8
Java Program to Perform Cryptography Using Transposition Technique
Loại bỏ các phần tử trùng trong một ArrayList như thế nào?
Spring Security 5 for Reactive Applications
Java Program to Implement Maximum Length Chain of Pairs
Introduction to Spring Cloud Netflix – Eureka
Converting Between an Array and a Set in Java
Guide To CompletableFuture
Hướng dẫn sử dụng luồng vào ra nhị phân trong Java
Versioning a REST API
Truyền giá trị và tham chiếu trong java
Java Program to Implement Weight Balanced Tree
Java Program to Implement Selection Sort
Java Program to Implement AVL Tree
An Example of Load Balancing with Zuul and Eureka
Spring Data JPA @Modifying Annotation
Tránh lỗi NullPointerException trong Java như thế nào?