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 AVL Tree
Một số ký tự đặc biệt trong Java
Java – File to Reader
Giới thiệu Google Guice – Dependency injection (DI) framework
Multipart Upload with HttpClient 4
Spring Security Authentication Provider
Removing all Nulls from a List in Java
Java Program to find the maximum subarray sum using Binary Search approach
Checked and Unchecked Exceptions in Java
Introduction to Spring Data MongoDB
Java Program to Implement Attribute API
Initialize a HashMap in Java
Introduction to Spring Data JPA
New Features in Java 8
Java Program to Search Number Using Divide and Conquer with the Aid of Fibonacci Numbers
Date Time trong Java 8
Hướng dẫn tạo và sử dụng ThreadPool trong Java
Java Program to Check whether Graph is a Bipartite using BFS
Java Program to Check Whether a Directed Graph Contains a Eulerian Path
Java Program to Implement Pollard Rho Algorithm
Autoboxing và Unboxing trong Java
Java Program to Check Whether an Undirected Graph Contains a Eulerian Path
Java Program to Implement Solovay Strassen Primality Test Algorithm
Mix plain text and HTML content in a mail
A Guide to JUnit 5 Extensions
HashSet trong Java hoạt động như thế nào?
Spring Boot - Twilio
Java Program to Implement LinkedTransferQueue API
ETags for REST with Spring
Tính đóng gói (Encapsulation) trong java
Hướng dẫn Java Design Pattern – Visitor
Spring Webflux with Kotlin