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 Print the Kind of Rotation the AVL Tree is Undergoing
Connect through a Proxy
Giới thiệu Design Patterns
Java Program to Implement Ford–Fulkerson Algorithm
Java – Rename or Move a File
Spring WebFlux Filters
Spring 5 WebClient
Java Program to Find the Nearest Neighbor Using K-D Tree Search
Java Program to Implement the One Time Pad Algorithm
Updating your Password
How to Add a Single Element to a Stream
Batch Processing with Spring Cloud Data Flow
Một số tính năng mới về xử lý ngoại lệ trong Java 7
Check If a String Is Numeric in Java
Spring Boot - Eureka Server
Java Program to Implement Slicker Algorithm that avoids Triangulation to Find Area of a Polygon
Java Switch Statement
Introduction to Java Serialization
Java Program to Implement Euclid GCD Algorithm
Posting with HttpClient
HashSet trong java
Java Program to Implement Gauss Jordan Elimination
Spring Security Remember Me
Concurrent Test Execution in Spring 5
Java Program to Perform Partial Key Search in a K-D Tree
Java Program to implement Bi Directional Map
Explain about URL and HTTPS protocol
Java Program to implement Associate Array
Getting Started with Forms in Spring MVC
Java Program to Implement Stein GCD Algorithm
Java Program to Search Number Using Divide and Conquer with the Aid of Fibonacci Numbers
Java Program to Perform Insertion in a BST