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 Dijkstra’s Algorithm using Set
Java Program to Implement ScapeGoat Tree
Java Program to Implement Jarvis Algorithm
Vector trong Java
Spring Boot - Code Structure
Java Program to Perform Arithmetic Operations on Numbers of Size
Java Program to Represent Graph Using Linked List
Java Web Services – JAX-WS – SOAP
Java Program to Find the Longest Path in a DAG
Interface trong Java 8 – Default method và Static method
Remove All Occurrences of a Specific Value from a List
Tổng quan về ngôn ngữ lập trình java
Initialize a HashMap in Java
Java Program to Find Maximum Element in an Array using Binary Search
Tránh lỗi ConcurrentModificationException trong Java như thế nào?
Spring 5 Testing with @EnabledIf Annotation
An Introduction to Java.util.Hashtable Class
Java Program to implement Priority Queue
Consumer trong Java 8
New Features in Java 14
Java Program to Implement Hamiltonian Cycle Algorithm
Hướng dẫn Java Design Pattern – Service Locator
Implementing a Binary Tree in Java
Java Program to Solve Travelling Salesman Problem for Unweighted Graph
Send an email using the SMTP protocol
Java Program to Construct an Expression Tree for an Postfix Expression
Spring Security Login Page with React
Java Program to Generate Random Partition out of a Given Set of Numbers or Characters
Spring REST API + OAuth2 + Angular
Java Program to Perform Deletion in a BST
Spring Boot - Admin Client
Convert Hex to ASCII in Java