# Difference between Binary Tree and Binary Search Tree

Sorting is the process of putting the data in a logical order so that it can be analysed in the most efficient manner possible. Searching is the action of looking for a certain record within a database. If the data are correctly organised in a predetermined manner, then the process of searching is going to be simple and time-effective. The topic of this article is trees, which are one of the most significant examples of non-linear data structures.

The primary purpose of using trees to represent data is to illustrate a hierarchical link between the various components of the structure being represented. Examples include the table of contents and the family tree.

A tree can be defined in a more technical sense as a finite set called "T" that contains one or more nodes. Within this set, one node is designated as the "root" of the tree, and the remaining nodes are partitioned into $"n\geq{0}"$ disjoint sets called $"T_{1},T_{2},T_{3},....T_{n}"$ These subtrees are referred as the "children" of the root node.

## What is a Binary Tree?

It is a sort of non-linear data structure in which each element may have either 2, 1, or 0 nodes at any one time. Every one of the nodes in this tree can perform the role of either a parent or a child node. The node that lies at the very top of this tree is referred to as the root node. There can be a maximum of two offspring for each parent node (child nodes). In this context, we usually refer to them as the left child/child node and the right child/child node respectively.

Each node that makes up a binary tree is composed of three fields −

• Data Element − It is a storage for the data value that the node needs to keep track of, so the node can use it.

• Pointer to the Left Child − It contains the address (or a reference to) the node's left child.

• Pointer to the Right Child − It contains the address (or a reference to) the right child node.

This is how several nodes combine to form a Binary Tree.

### Terminologies Used in a Binary Tree

The following terms are frequently used in relation to a Binary Tree −

• Node − A tree's basic representation of a termination point.

• Root Node − The highest node in a Binary Tree.

• Parent Node − A parent node is one that is connected to another node through edges. A parent node in a binary tree can have a maximum of two child nodes.

• Child Node − f a node has a predecessor, it is referred to as a child node.

• Leaf Node − A leaf node is a node that does not have any child nodes.

• Depth of a node − It is the distance between the root node and the node whose depth is being measured.

• Height of the tree − It is the greatest distance between the root node and the leaf node.

These are some of the fundamental terms associated with a binary tree. Now that you have a fundamental comprehension of a Binary Tree, it is time to move on to the next stage of the Binary Tree, which is known as the Binary Search Tree.

## What is a Binary Search Tree?

The Binary Search Tree is a node-based, non-linear type of data structure that is derived from the binary tree. It is also abbreviated as the BST. Data retrieval, classification, and analysis can all be accomplished with its help. Due to the fact that its nodes are placed in a specific order, another name for this structure is the Ordered Binary Tree.

A BST would have the following characteristics −

• It is necessary for the right subtree and the left subtree to each be a binary search tree.

• Only nodes with keys that are higher than the keys of the node itself can be found in the right subtree of a node.

• The left subtree of a node will only ever contain nodes with keys that are lower than the key of the node itself.

• In a Binary Search Tree, duplicate nodes are not permitted under any circumstances.

• Every node has a unique key.

## Difference between a Binary Tree and a Binary Search Tree

The following table highlights the major differences between a Binary Tree and a Binary Search Tree −

Basis of comparison
Binary Tree
Binary Search Tree
Definition
A nonlinear data structure known as a Binary Tree is one in which each node can have a maximum of two child nodes.
A BST is a binary tree with nodes that has right and left subtrees that are also binary search trees.
Types
• Complete Binary Tree
• Full Binary Tree
• Extended Binary Tree
• AVL Trees
• Splay Trees
• Tango Trees
• T-Trees
Operations
Since Binary Trees are not ordered, the processes of inserting, deleting, and finding them take significantly more time.
Due to their ordered characteristics, insertion, deletion, and searching of an element is faster in a BST than in a Binary Tree.
Structure
There is no ordering in a Binary Tree in terms of how the nodes are arranged.
In a BST, the left subtree contains elements that are less than the nodes element, while the right subtree contains elements that are greater than the nodes element.
Data Representation
The representation of data is performed in a structure that is hierarchical.
Data Representation is done in an ordered format.
Duplicate Values
Duplicate values are permitted in binary trees.
Duplicate values are not permitted in the Binary Search Tree.
Speed
Because it is unordered, the speed of deletion, insertion, and searching operations in Binary Tree is slower than in Binary Search Tree.
Because it has ordered properties, the Binary Search Tree performs element deletion, insertion, and searching more quickly.
Complexity
Typically, the time complexity is "O(n)".
Typically, the time complexity is "O(log n)".
Application
It is used for looking up data and obtaining information in a speedy and efficient manner.
It is effective at removing elements, inserting new ones, and searching for things.
Usage
It acts as the basis for developing various binary tree structures such as Full Binary Tree, BSTs, and Perfect Binary Tree, among others.
It is utilized in the of putting Balanced Binary Search Trees into action, such as AVL Trees, Red Black Trees, and other similar structures.

## Conclusion

Both of these models imitate a hierarchical tree structure that has a collection of nodes, with each node standing for a value; nevertheless, they are very different from one another in terms of how they can be put into practice and how they can be used.

A Binary Tree adheres to the rule that each parent node can only have a maximum of two child nodes, however a Binary Search Tree is merely a variation of the binary tree that adheres to a relative order to determine how the nodes in a tree should be structured.