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:
Spring Security Logout
DynamoDB in a Spring Boot Application Using Spring Data
Spring Security Custom AuthenticationFailureHandler
Java Program to Implement AA Tree
Working with Network Interfaces in Java
Spring Boot - Cloud Configuration Client
Constructor Injection in Spring with Lombok
The Difference Between Collection.stream().forEach() and Collection.forEach()
Introduction to the Java ArrayDeque
Java Program to Find Transpose of a Graph Matrix
Java Program to Implement Sparse Array
Java Program to Implement Warshall Algorithm
Java Program to Solve TSP Using Minimum Spanning Trees
Java Program to Implement Disjoint Set Data Structure
Hướng dẫn Java Design Pattern – Template Method
Java Program to Compare Binary and Sequential Search
Java Program to Check Whether Topological Sorting can be Performed in a Graph
Java 8 Stream findFirst() vs. findAny()
Java Program to Construct an Expression Tree for an Infix Expression
Java Program to Implement Max-Flow Min-Cut Theorem
Hướng dẫn Java Design Pattern – Iterator
Java Program to Implement Flood Fill Algorithm
Java Program to Find SSSP (Single Source Shortest Path) in DAG (Directed Acyclic Graphs)
Period and Duration in Java
Circular Dependencies in Spring
Guide to Java Instrumentation
Java Program to Implement Quick Sort Using Randomization
Check if there is mail waiting
Mapping Nested Values with Jackson
Java Program to Implement Sorted Singly Linked List
Allow user:password in URL
So sánh HashMap và Hashtable trong Java