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:
Tính đa hình (Polymorphism) trong Java
Spring Boot - Unit Test Cases
Check If a File or Directory Exists in Java
Guide to ThreadLocalRandom in Java
Introduction to Eclipse Collections
Java Program to Implement Shunting Yard Algorithm
Spring Boot - Rest Controller Unit Test
Guide to Java Instrumentation
A Guide to JUnit 5
Copy a List to Another List in Java
Java Program to Generate Date Between Given Range
Template Engines for Spring
Introduction to Java Serialization
Apache Tiles Integration with Spring MVC
Java Program to Implement RoleUnresolvedList API
Java Program to Find Maximum Element in an Array using Binary Search
Giới thiệu Java Service Provider Interface (SPI) – Tạo các ứng dụng Java dễ mở rộng
Java Program to Convert a Decimal Number to Binary Number using Stacks
Serverless Functions with Spring Cloud Function
Java Program to Implement Wagner and Fisher Algorithm for online String Matching
Returning Custom Status Codes from Spring Controllers
Introduction to Spring Data JPA
Java Program to Find MST (Minimum Spanning Tree) using Prim’s Algorithm
Assert an Exception is Thrown in JUnit 4 and 5
Java Program to Implement the MD5 Algorithm
Kiểu dữ liệu Ngày Giờ (Date Time) trong java
Lập trình đa luồng với CompletableFuture trong Java 8
Interface trong Java 8 – Default method và Static method
Java Streams vs Vavr Streams
Java Program to Implement Shell Sort
Java Program to Perform Complex Number Multiplication
Limiting Query Results with JPA and Spring Data JPA