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 Data JPA @Query
ExecutorService – Waiting for Threads to Finish
The Thread.join() Method in Java
Receive email by java client
Guide to the ConcurrentSkipListMap
The XOR Operator in Java
Java Program to Perform Preorder Recursive Traversal of a Given Binary Tree
Java Program to Check Whether it is Weakly Connected or Strongly Connected for a Directed Graph
Java Program to Check for balanced parenthesis by using Stacks
Giới thiệu Google Guice – Binding
RegEx for matching Date Pattern in Java
Transactions with Spring and JPA
Spring 5 Testing with @EnabledIf Annotation
Java Program to Check if an UnDirected Graph is a Tree or Not Using DFS
Initialize a HashMap in Java
Enum trong java
Java Program to Implement Fermat Primality Test Algorithm
Spring Cloud – Bootstrapping
Java Program to Implement CopyOnWriteArraySet API
A Guide to the ResourceBundle
Exploring the Spring 5 WebFlux URL Matching
How to Manually Authenticate User with Spring Security
Cơ chế Upcasting và Downcasting trong java
The Guide to RestTemplate
Spring MVC Async vs Spring WebFlux
Java Program to Implement Quick Sort Using Randomization
Introduction to Spring Cloud Rest Client with Netflix Ribbon
Wrapper Classes in Java
OAuth2 Remember Me with Refresh Token
Using the Not Operator in If Conditions in Java
Spring Boot - Bootstrapping
How to Round a Number to N Decimal Places in Java