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:
A Guide to BitSet in Java
Receive email using IMAP
The Spring @Controller and @RestController Annotations
Uploading MultipartFile with Spring RestTemplate
Java Program to Implement Pollard Rho Algorithm
Java Program to Implement Floyd Cycle Algorithm
Static Content in Spring WebFlux
Java Program to Implement Self Balancing Binary Search Tree
Java Program to Implement PriorityBlockingQueue API
REST Pagination in Spring
Java Program to Implement String Matching Using Vectors
Java Program to Implement Segment Tree
Composition, Aggregation, and Association in Java
Tìm hiểu cơ chế Lazy Evaluation của Stream trong Java 8
Java Program to Implement Bresenham Line Algorithm
Java toString() Method
Guide to java.util.concurrent.Locks
Java Program to Implement Attribute API
Luồng Daemon (Daemon Thread) trong Java
Hướng dẫn sử dụng Java Generics
Java Program to Perform Addition Operation Using Bitwise Operators
OAuth2 for a Spring REST API – Handle the Refresh Token in AngularJS
A Guide to Java HashMap
Java program to Implement Tree Set
An Introduction to Java.util.Hashtable Class
Java Program to Implement Bucket Sort
Limiting Query Results with JPA and Spring Data JPA
Introduction to Spring MVC HandlerInterceptor
Spring Data Java 8 Support
Java Program to Perform Stooge Sort
Java Stream Filter with Lambda Expression
Spring Boot - Hystrix