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:
Using the Not Operator in If Conditions in Java
Java Program to Implement Interpolation Search Algorithm
Java Program to Implement Hopcroft Algorithm
Java equals() and hashCode() Contracts
Kết hợp Java Reflection và Java Annotations
Spring Security 5 – OAuth2 Login
Java Program to Solve any Linear Equation in One Variable
Các chương trình minh họa sử dụng Cấu trúc điều khiển trong Java
Spring JDBC
Concrete Class in Java
Java Program to Implement PriorityBlockingQueue API
Static Content in Spring WebFlux
Guide to java.util.Formatter
Tạo ứng dụng Java RESTful Client với thư viện Retrofit
OAuth2 Remember Me with Refresh Token
Spring Data MongoDB Transactions
Introduction to Spring Security Expressions
Java Program to Check Whether a Directed Graph Contains a Eulerian Cycle
Java Program to Implement the Monoalphabetic Cypher
Spring @RequestParam Annotation
Convert String to Byte Array and Reverse in Java
Intro to Spring Boot Starters
Java Program to Implement Caesar Cypher
Java Program to Implement Coppersmith Freivald’s Algorithm
Using Optional with Jackson
Write/Read cookies using HTTP and Read a file from the internet
Collection trong java
Jackson vs Gson
Java Program to Implement Min Hash
Intro to Inversion of Control and Dependency Injection with Spring
HttpClient 4 – Send Custom Cookie
Java Program to Implement Hash Tables with Quadratic Probing