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 Priority Queue
Java Program to Implement Merge Sort Algorithm on Linked List
Java Program to Implement Fibonacci Heap
Thao tác với tập tin và thư mục trong Java
Java Program to Check if an UnDirected Graph is a Tree or Not Using DFS
Setting the Java Version in Maven
How to Return 404 with Spring WebFlux
Handling URL Encoded Form Data in Spring REST
Java Program to Implement Queue using Two Stacks
Extract links from an HTML page
Testing an OAuth Secured API with Spring MVC
Spring Boot - Database Handling
Java Program to Implement Johnson’s Algorithm
REST Web service: Upload và Download file với Jersey 2.x
Using a Mutex Object in Java
Java Program to Test Using DFS Whether a Directed Graph is Strongly Connected or Not
Java Convenience Factory Methods for Collections
Get the workstation name or IP
Spring Boot - Build Systems
Java Program to Describe the Representation of Graph using Incidence List
Java Program to Implement Binary Tree
Hướng dẫn Java Design Pattern – Strategy
Using Optional with Jackson
Introduction to Spring Cloud Rest Client with Netflix Ribbon
Java Program to implement Bit Set
HttpAsyncClient Tutorial
LIKE Queries in Spring JPA Repositories
Java Program to Implement Pairing Heap
Java Program to Implement Doubly Linked List
Java Program to Implement Euler Circuit Problem
Java Program to Implement Borwein Algorithm
Spring Cloud Bus