# Binary Tree vs Binary Search Tree (BST)

In this post, we will learn the difference between Binary Tree and Binary Search Tree (BST) in Java. This is a frequently asked question in Java interviews for beginners. Let's dive into it.

## Difference between Binary Tree and Binary Search Tree (BST) in Java

Feature Binary Tree Binary Search Tree (BST)
Definition A binary tree is a tree data structure where each node has at most two children, referred to as the left child and the right child. A binary search tree is a binary tree in which each node has a key, and the keys of all left subtree nodes are less than the key of the node, and the keys of all right subtree nodes are greater than the key of the node.
Key Property There is no specific order or arrangement of nodes based on their values in a binary tree. The nodes in a BST follow a specific order based on their keys, where the left subtree nodes have smaller keys and the right subtree nodes have larger keys.
Search Operation To find a specific node in a binary tree, you need to traverse the entire tree, which results in O(n) time complexity in the worst case. In a BST, the search operation is highly efficient, with a time complexity of O(log n) on average, as the search space is reduced by half with each step. However, in the worst case, it can still be O(n) if the tree is skewed.
Insertion Operation Insertion in a binary tree is straightforward, and the new node can be placed anywhere in the tree. In a BST, the insertion operation follows the order of keys, ensuring that the new node is placed at the appropriate position to maintain the BST property.
Deletion Operation Deletion in a binary tree involves finding the node to delete and then rearranging the tree structure. Deletion in a BST is more complex, and there are different cases to consider based on the location of the node and its children.
Height The height of a binary tree can vary significantly and may not be balanced. A well-balanced BST has a height of log(n) in the best case, while in the worst case, it can become skewed, leading to a height of n.
Efficiency of Operations The efficiency of search, insertion, and deletion operations in a binary tree is generally O(n) in the worst case. The efficiency of operations in a balanced BST is O(log n) on average, making it much faster for large datasets. However, the worst-case scenario can still be O(n) if the tree is skewed.
Example
In summary, a binary tree is a simple tree structure with no specific order of nodes, while a binary search tree is a special type of binary tree that follows a specific order based on the keys of its nodes. This order enables efficient searching, insertion, and deletion operations, making it a useful data structure for maintaining sorted data.