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 Array Deque
Java Program to Implement Self organizing List
Arrays.asList vs new ArrayList(Arrays.asList())
Spring Boot - Securing Web Applications
Guide to DelayQueue
Java Program to Implement Ternary Search Tree
Java Program to Generate Randomized Sequence of Given Range of Numbers
Spring Security with Maven
Java Program to Implement Ternary Tree
Java Program to Implement Euclid GCD Algorithm
Java Program to Implement Min Hash
Immutable Objects in Java
Spring Boot - Actuator
Một số ký tự đặc biệt trong Java
Hướng dẫn Java Design Pattern – Prototype
Java Program to Implement Jarvis Algorithm
Java Program to Implement the Program Used in grep/egrep/fgrep
Spring MVC Content Negotiation
Java Program to Find the Median of two Sorted Arrays using Binary Search Approach
Spring Boot - Tomcat Deployment
Java Program to Find a Good Feedback Edge Set in a Graph
Java Program to Perform Polygon Containment Test
Java Program to Implement Pairing Heap
List Interface trong Java
Guide to the Java ArrayList
Hướng dẫn Java Design Pattern – MVC
Spring Boot - Thymeleaf
Java Program to Perform Searching Based on Locality of Reference
Guide to the Synchronized Keyword in Java
Vector trong Java
Java Program to Describe the Representation of Graph using Incidence Matrix
Tạo ứng dụng Java RESTful Client không sử dụng 3rd party libraries