This is a Java Program to perform search an element in the binary search tree.
Here is the source code of the Java Program to Perform Search in a BST. 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 search an element in a Binary Search Tree import java.util.Random; import java.util.Scanner; class BSTNode { BSTNode left, right; int data; public BSTNode() { left = null; right = null; data = 0; } public BSTNode(int n) { left = null; right = null; data = n; } public void setLeft(BSTNode n) { left = n; } public void setRight(BSTNode n) { right = n; } public BSTNode getLeft() { return left; } public BSTNode getRight() { return right; } public void setData(int d) { data = d; } public int getData() { return data; } } class BSTree { private BSTNode root; public BSTree() { root = null; } public boolean isEmpty() { return root == null; } public void insert(int data) { root = insert(root, data); } private BSTNode insert(BSTNode node, int data) { if (node == null) node = new BSTNode(data); else { if (data <= node.getData()) node.left = insert(node.left, data); else node.right = insert(node.right, data); } return node; } public boolean search(int val) { return search(root, val); } private boolean search(BSTNode r, int val) { boolean found = false; while ((r != null) && !found) { int rval = r.getData(); if (val < rval) r = r.getLeft(); else if (val > rval) r = r.getRight(); else { found = true; break; } found = search(r, val); } return found; } public void inorder() { inorder(root); } private void inorder(BSTNode r) { if (r != null) { inorder(r.getLeft()); System.out.print(r.getData() + " "); inorder(r.getRight()); } } public void preorder() { preorder(root); } private void preorder(BSTNode r) { if (r != null) { System.out.print(r.getData() + " "); preorder(r.getLeft()); preorder(r.getRight()); } } public void postorder() { postorder(root); } private void postorder(BSTNode r) { if (r != null) { postorder(r.getLeft()); postorder(r.getRight()); System.out.print(r.getData() + " "); } } } public class Searching_Tree { public static void main(String[] args) { BSTree bst = new BSTree(); System.out.println("Binary Search Tree Deletion Test\n"); Scanner input = new Scanner(System.in); Random rand = new Random(); int elements = 15; for (int i = 0; i < elements; i++) bst.insert(Math.abs(rand.nextInt(100))); System.out.println("Enter integer element to search"); System.out.println("Search result : " + bst.search(input.nextInt())); System.out.print("\nPost order : "); bst.postorder(); System.out.print("\nPre order : "); bst.preorder(); System.out.print("\nIn order : "); bst.inorder(); input.close(); } }
Output:
$ javac Searching_BST.java $ java Searching_BST Binary Search Tree Searching Test Enter integer element to search 15 Search result : true Post order : 0 10 5 24 15 38 4 63 55 72 67 79 97 80 49 Pre order : 49 4 0 38 15 5 10 24 80 79 67 55 63 72 97 In order : 0 4 5 10 15 24 38 49 55 63 67 72 79 80 97
Related posts:
Java Program to Implement Max-Flow Min-Cut Theorem
The Dining Philosophers Problem in Java
Performance Difference Between save() and saveAll() in Spring Data
Spring Cloud – Tracing Services with Zipkin
Mix plain text and HTML content in a mail
Java – Create a File
How to Add a Single Element to a Stream
Using Spring ResponseEntity to Manipulate the HTTP Response
Java – Write a Reader to File
How to Get All Spring-Managed Beans?
OAuth2 for a Spring REST API – Handle the Refresh Token in Angular
Java Program to Implement ConcurrentHashMap API
Receive email using IMAP
Java Program to Implement Hash Tables with Linear Probing
A Quick Guide to Using Keycloak with Spring Boot
Working With Maps Using Streams
Java Program to Implement Double Ended Queue
Handling Errors in Spring WebFlux
Spring Boot - Exception Handling
Retrieve User Information in Spring Security
Mảng (Array) trong Java
Spring Boot - Building RESTful Web Services
Java Program to do a Depth First Search/Traversal on a graph non-recursively
Overflow and Underflow in Java
Configuring a DataSource Programmatically in Spring Boot
OAuth2 Remember Me with Refresh Token
Java Program to Find the Minimum value of Binary Search Tree
Apache Commons Collections Bag
Tính đóng gói (Encapsulation) trong java
Spring Boot Actuator
The Registration API becomes RESTful
Spring Boot - Rest Template