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:
StringBuilder vs StringBuffer in Java
Java Program to Generate All Possible Combinations of a Given List of Numbers
So sánh Array và ArrayList trong Java
Why String is Immutable in Java?
Spring Boot - Rest Controller Unit Test
Hướng dẫn Java Design Pattern – Intercepting Filter
Spring @RequestParam Annotation
Java Program to Find a Good Feedback Vertex Set
Java Program to Generate a Random Subset by Coin Flipping
Most commonly used String methods in Java
Java Program to Perform Searching Based on Locality of Reference
Java Program to Perform Optimal Paranthesization Using Dynamic Programming
@Order in Spring
Tìm hiểu về Web Service
Spring Data Reactive Repositories with MongoDB
Java Program to Implement the Checksum Method for Small String Messages and Detect
Giới thiệu Google Guice – Aspect Oriented Programming (AOP)
How to Store Duplicate Keys in a Map in Java?
Java Program to Implement ConcurrentLinkedQueue API
Java Program to Implement Quick sort
Toán tử trong java
Java Program to Implement Sorted Singly Linked List
Java Copy Constructor
Java Program to Implement Sieve Of Eratosthenes
Spring Boot - Rest Template
Giới thiệu Google Guice – Injection, Scope
Test a REST API with Java
Java Program to Perform Sorting Using B-Tree
Using the Map.Entry Java Class
Remove the First Element from a List
Spring Security Logout
The Difference Between map() and flatMap()