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:
Convert String to Byte Array and Reverse in Java
Spring Boot - Tomcat Port Number
Java Program to Implement Gift Wrapping Algorithm in Two Dimensions
Convert Hex to ASCII in Java
Java Program to Implement Interval Tree
Introduction to the Java NIO Selector
A Guide to Java SynchronousQueue
Java Program to Implement Euclid GCD Algorithm
Guava Collections Cookbook
Call Methods at Runtime Using Java Reflection
Loại bỏ các phần tử trùng trong một ArrayList như thế nào?
Một số ký tự đặc biệt trong Java
String Initialization in Java
Checked and Unchecked Exceptions in Java
Java Program to Check if any Graph is Possible to be Constructed for a Given Degree Sequence
Java Program to Perform Inorder Non-Recursive Traversal of a Given Binary Tree
Disable Spring Data Auto Configuration
Java Program to Encode a Message Using Playfair Cipher
Map to String Conversion in Java
Java Program to Perform Uniform Binary Search
Instance Profile Credentials using Spring Cloud
Java Program to Implement the Binary Counting Method to Generate Subsets of a Set
Removing all Nulls from a List in Java
Hướng dẫn sử dụng Lớp FilePermission trong java
Java InputStream to Byte Array and ByteBuffer
Phân biệt JVM, JRE, JDK
Spring Boot - Tomcat Deployment
HttpClient Timeout
Apache Commons Collections SetUtils
Java Program to Implement Branch and Bound Method to Perform a Combinatorial Search
Guide to the Synchronized Keyword in Java
Java Program to Implement Hash Trie