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:
A Quick Guide to Spring MVC Matrix Variables
Spring Autowiring of Generic Types
Java Program to Implement Quick Sort Using Randomization
Java Program to Implement Disjoint Sets
Quick Guide to the Java StringTokenizer
Spring Webflux and CORS
Encode a String to UTF-8 in Java
Transaction Propagation and Isolation in Spring @Transactional
Java Program to Implement Caesar Cypher
Java Program to Perform Matrix Multiplication
Hướng dẫn sử dụng Java Generics
Tạo ứng dụng Java RESTful Client với thư viện Retrofit
Lập trình đa luồng với CompletableFuture trong Java 8
New Stream Collectors in Java 9
Lấy ngày giờ hiện tại trong Java
Java Program to Implement Depth-limited Search
The Java 8 Stream API Tutorial
Java Program to Implement Solovay Strassen Primality Test Algorithm
A Guide to BitSet in Java
Java Multi-line String
JUnit 5 @Test Annotation
Spring’s RequestBody and ResponseBody Annotations
Spring Security Authentication Provider
Loại bỏ các phần tử trùng trong một ArrayList như thế nào trong Java 8?
Chuyển đổi Array sang ArrayList và ngược lại
Java Program to Find k Numbers Closest to Median of S, Where S is a Set of n Numbers
Introduction to the Java NIO2 File API
Spring Boot - CORS Support
Java Program to Implement JobStateReasons API
Java Program to Implement Min Heap
Java Program to Implement vector
A Guide to the ViewResolver in Spring MVC