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:
The “final” Keyword in Java
Java Program to Implement the Bin Packing Algorithm
Spring Boot - Interceptor
Java Program to Implement Binary Tree
Guide to Java Instrumentation
Java Program to Implement Gabow Algorithm
Java 8 Predicate Chain
Java Program to Solve Tower of Hanoi Problem using Stacks
Custom Thread Pools In Java 8 Parallel Streams
Java Program to Implement Stack API
Java Program to Describe the Representation of Graph using Incidence List
Guide to java.util.concurrent.BlockingQueue
A Custom Data Binder in Spring MVC
Java Program to Implement Segment Tree
Java Program to Implement Affine Cipher
Hướng dẫn Java Design Pattern – Template Method
Java Program to Find Nearest Neighbor for Dynamic Data Set
Java Program to Implement Patricia Trie
Java Program to Implement Bit Array
Introduction to Apache Commons Text
Java Program to Implement Extended Euclid Algorithm
Spring Security Custom AuthenticationFailureHandler
Java Program to Encode a Message Using Playfair Cipher
Spring Boot - Application Properties
Immutable Map Implementations in Java
Java Program to Find Location of a Point Placed in Three Dimensions Using K-D Trees
Function trong Java 8
Java Program to Implement Gift Wrapping Algorithm in Two Dimensions
Java – Get Random Item/Element From a List
Java Program to Implement K Way Merge Algorithm
Java – Write a Reader to File
StringBuilder vs StringBuffer in Java