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:
Introduction to Liquibase Rollback
Filtering a Stream of Optionals in Java
Java 8 StringJoiner
Converting Java Date to OffsetDateTime
Java Program to Generate All Subsets of a Given Set in the Gray Code Order
Transaction Propagation and Isolation in Spring @Transactional
Java Program to Generate All Possible Combinations Out of a, b, c, d, e
The Dining Philosophers Problem in Java
Updating your Password
String Initialization in Java
Java Program to Implement Splay Tree
Java Program to Implement Park-Miller Random Number Generation Algorithm
Java Program to Implement Stack
Java Program to Implement AA Tree
Write/Read cookies using HTTP and Read a file from the internet
Quick Guide to Spring Bean Scopes
Hướng dẫn sử dụng Java Annotation
Giới thiệu Google Guice – Dependency injection (DI) framework
Java Program to Perform Preorder Recursive Traversal of a Given Binary Tree
Unsatisfied Dependency in Spring
HttpAsyncClient Tutorial
Spring Boot - Runners
Spring Boot - Admin Server
How to Find an Element in a List with Java
Java 8 – Powerful Comparison with Lambdas
Hướng dẫn sử dụng Printing Service trong Java
Java Program to Find Basis and Dimension of a Matrix
Guide to the ConcurrentSkipListMap
Primitive Type Streams in Java 8
Guide to UUID in Java
Ignore Null Fields with Jackson
Introduction to Spring Data JPA