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 Check Whether a Weak Link i.e. Articulation Vertex Exists in a Graph
A Guide to ConcurrentMap
Java Program to Find Nearest Neighbor for Static Data Set
Spring Cloud Series – The Gateway Pattern
How to Read HTTP Headers in Spring REST Controllers
How to Break from Java Stream forEach
Java String to InputStream
Java Program to Check if a Directed Graph is a Tree or Not Using DFS
Cài đặt và sử dụng Swagger UI
Java Program to Generate a Graph for a Given Fixed Degree Sequence
Introduction to Using FreeMarker in Spring MVC
Introduction to Spring Cloud Stream
Java Program to Perform Polygon Containment Test
Initialize a HashMap in Java
Hướng dẫn Java Design Pattern – Factory Method
Giới thiệu Google Guice – Binding
Java Program to Implement Leftist Heap
Spring Boot - Internationalization
Java Program to Implement Interval Tree
Spring WebClient Requests with Parameters
So sánh HashMap và HashSet trong Java
Java Program to implement Priority Queue
RestTemplate Post Request with JSON
ThreadPoolTaskExecutor corePoolSize vs. maxPoolSize
Spring Security OAuth2 – Simple Token Revocation
Introduction to Spring Cloud CLI
Guide to CopyOnWriteArrayList
Serialization và Deserialization trong java
Chuyển đổi Array sang ArrayList và ngược lại
Add Multiple Items to an Java ArrayList
Java Program to Implement the Checksum Method for Small String Messages and Detect
JPA/Hibernate Persistence Context