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:
Java Program to Implement Nth Root Algorithm
Receive email using POP3
Interface trong Java 8 – Default method và Static method
Java Program to Find Median of Elements where Elements are Stored in 2 Different Arrays
XML-Based Injection in Spring
Jackson Exceptions – Problems and Solutions
Collect a Java Stream to an Immutable Collection
The StackOverflowError in Java
Disable Spring Data Auto Configuration
Configure a RestTemplate with RestTemplateBuilder
Hashing a Password in Java
Jackson – Unmarshall to Collection/Array
Java Program to Implement the Bin Packing Algorithm
Spring Boot - Google OAuth2 Sign-In
DynamoDB in a Spring Boot Application Using Spring Data
Xây dựng ứng dụng Client-Server với Socket trong Java
A Guide to Iterator in Java
Java Program to Implement Interpolation Search Algorithm
Spring Boot - Application Properties
Java Program to Implement Wagner and Fisher Algorithm for online String Matching
Debug a JavaMail Program
How to Manually Authenticate User with Spring Security
Annotation trong Java 8
Sorting in Java
How to Set TLS Version in Apache HttpClient
Spring Boot with Multiple SQL Import Files
Java Program to Find the Vertex Connectivity of a Graph
Java Program to Implement Dijkstra’s Algorithm using Set
Spring Boot - Rest Template
Java Program to Implement Sorted Singly Linked List
Java Program to Implement Multi-Threaded Version of Binary Search Tree
Spring Boot Actuator