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:
Read an Outlook MSG file
Jackson Ignore Properties on Marshalling
Java Program to Implement Min Heap
Returning Custom Status Codes from Spring Controllers
Introduction to the Java NIO Selector
Spring Cloud Series – The Gateway Pattern
Hướng dẫn Java Design Pattern – Bridge
Converting a Stack Trace to a String in Java
Java InputStream to String
Java Program to Implement Splay Tree
Difference Between Wait and Sleep in Java
Spring Boot - Build Systems
Default Password Encoder in Spring Security 5
Java Program to Implement Cubic convergence 1/pi Algorithm
TreeSet và sử dụng Comparable, Comparator trong java
Java Program to Implement Solovay Strassen Primality Test Algorithm
Circular Dependencies in Spring
Introduction to Spring MVC HandlerInterceptor
Java Program to Perform Partition of an Integer in All Possible Ways
Convert Time to Milliseconds in Java
Java Program to Check whether Directed Graph is Connected using DFS
Spring Boot - Eureka Server
Java Program to Implement ConcurrentHashMap API
Java Program to Implement Range Tree
Java Program to Perform Search in a BST
Using a Spring Cloud App Starter
Spring Security Authentication Provider
Using JWT with Spring Security OAuth
Count Occurrences of a Char in a String
Spring @RequestParam Annotation
Transaction Propagation and Isolation in Spring @Transactional
Java Program to Implement Bit Array