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:
Cài đặt và sử dụng Swagger UI
LinkedHashSet trong Java hoạt động như thế nào?
Java 8 Stream API Analogies in Kotlin
Setting the Java Version in Maven
Java Program to Find the Shortest Path Between Two Vertices Using Dijkstra’s Algorithm
Guide to UUID in Java
Spring WebClient Filters
Giới thiệu thư viện Apache Commons Chain
Spring REST API + OAuth2 + Angular
Java Program to implement Bi Directional Map
Java Program to Check if a Point d lies Inside or Outside a Circle Defined by Points a, b, c in a Pl...
Hướng dẫn Java Design Pattern – Facade
Dockerizing a Spring Boot Application
Java Program to Check whether Graph is a Bipartite using 2 Color Algorithm
Câu lệnh điều khiển vòng lặp trong Java (break, continue)
How to Get All Dates Between Two Dates?
Spring @RequestParam Annotation
Handling Errors in Spring WebFlux
Spring Boot - Build Systems
Control Structures in Java
Merging Streams in Java
So sánh HashMap và HashSet trong Java
Spring Boot - Building RESTful Web Services
Java Program to Implement Tarjan Algorithm
Apache Tiles Integration with Spring MVC
Getting Started with Forms in Spring MVC
Spring Boot - Apache Kafka
Java Program to Use Boruvka’s Algorithm to Find the Minimum Spanning Tree
Java Program to Implement Branch and Bound Method to Perform a Combinatorial Search
Java Program to Find the Number of Ways to Write a Number as the Sum of Numbers Smaller than Itself
Java Program to Implement the One Time Pad Algorithm
Merging Two Maps with Java 8