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:
Spring’s RequestBody and ResponseBody Annotations
Java – Try with Resources
Java Program to Implement CountMinSketch
A Guide to System.exit()
HTTP Authentification and CGI/Servlet
Java Program to Implement the Checksum Method for Small String Messages and Detect
Java Program to Implement Double Ended Queue
Intro to Spring Boot Starters
Get the workstation name or IP
Using Java Assertions
Java Program to Compute the Area of a Triangle Using Determinants
Java Program to implement Sparse Vector
An Example of Load Balancing with Zuul and Eureka
Giới thiệu Java Service Provider Interface (SPI) – Tạo các ứng dụng Java dễ mở rộng
Java Program to Implement Triply Linked List
Vấn đề Nhà sản xuất (Producer) – Người tiêu dùng (Consumer) và đồng bộ hóa các luồng trong Java
Server-Sent Events in Spring
Introduction to Thread Pools in Java
JUnit 5 @Test Annotation
Object cloning trong java
Case-Insensitive String Matching in Java
Spring Security Basic Authentication
Unsatisfied Dependency in Spring
Java Program to Implement Stack API
Java Program to Implement Quick Sort with Given Complexity Constraint
Java Multi-line String
Java Program to Implement ArrayBlockingQueue API
Java Program to Check if a Given Binary Tree is an AVL Tree or Not
A Guide to the finalize Method in Java
Java Program to Implement Uniform-Cost Search
Quick Guide to @RestClientTest in Spring Boot
Java Program to Implement Network Flow Problem