This Java program is to Implement binary tree and check whether a tree is subtree of another. This can be done in two ways. A tree can be subtree of another if they have same structure (same object references but different value) and with same structure and values. This given class checks for both.
Here is the source code of the Java Program to Check Whether an Input Binary Tree is the Sub Tree of the 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 check whether a binary tree is subtree of another tree
class Btrees
{
Object value;
Btrees Left;
Btrees Right;
Btrees(int k)
{
value = k;
}
}
public class SubBinaryTree
{
public static boolean ifsubtreeRef(Btrees t1, Btrees t2)
{
if (t2 == null)
return true;
if (t1 == null)
return false;
return (t1 == t2) || ifsubtreeRef(t1.Left, t2)
|| ifsubtreeRef(t1.Right, t2);
}
public static boolean ifsubtreeValue(Btrees t1, Btrees t2)
{
if (t2 == null)
return true;
if (t1 == null)
return false;
if (t1.value == t2.value)
if (ifsubtreeValue(t1.Left, t2.Left)
&& ifsubtreeValue(t1.Right, t2.Right))
return true;
return ifsubtreeValue(t1.Left, t2) || ifsubtreeValue(t1.Right, t2);
}
public static void main(String[] args)
{
Btrees t1 = new Btrees(1);
t1.Left = new Btrees(2);
t1.Right = new Btrees(3);
t1.Right.Left = new Btrees(4);
t1.Right.Right = new Btrees(5);
Btrees t2 = new Btrees(3);
t2.Left = new Btrees(4);
t2.Right = new Btrees(5);
if (ifsubtreeRef(t1, t2))
System.out.println("T2 is sub-tree of T1 (Reference wise)");
else
System.out.println("T2 is NOT sub-tree of T1 (Reference wise)");
if (ifsubtreeValue(t1, t2))
System.out.println("T2 is sub-tree of T1 (Value wise)");
else
System.out.println("T2 is NOT sub-tree of T1 (Value wise)");
}
}
Output:
$ javac SubBinaryTree.java $ java SubBinaryTree T2 is NOT sub-tree of T1 (Reference wise) T2 is sub-tree of T1 (Value wise)
Related posts:
Consuming RESTful Web Services
Java Program to Perform the Unique Factorization of a Given Number
Guide to Guava Multimap
Setting a Request Timeout for a Spring REST API
Spring 5 Functional Bean Registration
Concatenating Strings In Java
Introduction to Using Thymeleaf in Spring
Transaction Propagation and Isolation in Spring @Transactional
How to Read a File in Java
Hướng dẫn Java Design Pattern – Object Pool
An Intro to Spring Cloud Security
Java Program to Implement HashMap API
Java Program to Implement Selection Sort
Java Program to Implement Iterative Deepening
Server-Sent Events in Spring
Introduction to Spring Cloud Netflix – Eureka
Spring Boot - Cloud Configuration Server
New Features in Java 8
Lấy ngày giờ hiện tại trong Java
Finding the Differences Between Two Lists in Java
Check If Two Lists are Equal in Java
Java Program to Describe the Representation of Graph using Incidence Matrix
Java Program to Find the Minimum Element of a Rotated Sorted Array using Binary Search approach
Java Program to Implement the RSA Algorithm
Java Program to Show the Duality Transformation of Line and Point
Mockito and JUnit 5 – Using ExtendWith
New Features in Java 15
Constructor Injection in Spring with Lombok
JPA/Hibernate Persistence Context
Quick Guide to @RestClientTest in Spring Boot
Java Program to Remove the Edges in a Given Cyclic Graph such that its Linear Extension can be Found
New Stream Collectors in Java 9