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:
Debug a HttpURLConnection problem
Java Program to Implement Sorted Singly Linked List
Using the Map.Entry Java Class
Java Program to Implement Nth Root Algorithm
List Interface trong Java
Java Program to Implement D-ary-Heap
A Guide to Java HashMap
Primitive Type Streams in Java 8
Java Program to Implement Double Ended Queue
Spring RestTemplate Request/Response Logging
Converting a Stack Trace to a String in Java
Java Program to Implement Hash Tables
Testing in Spring Boot
Custom Error Pages with Spring MVC
Java Program to Find the Peak Element of an Array O(n) time (Naive Method)
Hướng dẫn Java Design Pattern – Decorator
Java Program to Find the Vertex Connectivity of a Graph
Receive email by java client
Java Program to Implement Repeated Squaring Algorithm
Java Program to Check Whether a Directed Graph Contains a Eulerian Cycle
Spring Boot - Actuator
Sort a HashMap in Java
A Quick JUnit vs TestNG Comparison
Java Program to Implement Skew Heap
Quick Guide to the Java StringTokenizer
Java Program to Implement Best-First Search
Convert Hex to ASCII in Java
Guide to Character Encoding
Spring 5 WebClient
Thao tác với tập tin và thư mục trong Java
Testing an OAuth Secured API with Spring MVC
Reactive Flow with MongoDB, Kotlin, and Spring WebFlux