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:
Java Program to Implement Bubble Sort
Java Program to Implement Hash Tables chaining with Singly Linked Lists
JUnit 5 for Kotlin Developers
Extract network card address
The XOR Operator in Java
CharSequence vs. String in Java
String Initialization in Java
Java Program to Perform String Matching Using String Library
Spring Boot - Admin Server
Java Program to Implement Hash Trie
Java Program to Implement Meldable Heap
Java Program to Generate All Subsets of a Given Set in the Gray Code Order
Versioning a REST API
An Introduction to Java.util.Hashtable Class
Hướng dẫn Java Design Pattern – Intercepting Filter
Java Program to Implement Graph Coloring Algorithm
Guide to System.gc()
Java Program to Implement Radix Sort
Spring Autowiring of Generic Types
Automatic Property Expansion with Spring Boot
Implementing a Binary Tree in Java
Runnable vs. Callable in Java
Assert an Exception is Thrown in JUnit 4 and 5
Java Program to Implement Graph Structured Stack
Spring Data JPA and Null Parameters
Returning Custom Status Codes from Spring Controllers
Integer Constant Pool trong Java
Java Program to Find Transitive Closure of a Graph
Java Program to Implement Repeated Squaring Algorithm
Java Program to Implement Attribute API
Date Time trong Java 8
Java Program to Check Whether an Undirected Graph Contains a Eulerian Path