Binary Tree
Binary Tree
Binary tree is a special tree data structure in which each node can have at most 2 children.
Thus, in a binary tree,
Each node has either 0 child or 1 child or 2 children.
Example-
A binary tree is unlabeled if its nodes are not assigned any label.
Example-
Consider we want to draw all the binary trees possible with 3 unlabeled nodes.
Using the above formula, we have-
Thus,
• With 3 unlabeled nodes, 5 unlabeled binary trees are possible.
• These unlabeled binary trees are as follows-
Consider we want to draw all the binary trees possible with 3 labeled nodes.
Using the above formula, we have-
Thus,
• With 3 labeled nodes, 30 labeled binary trees are possible.
• Each unlabeled structure gives rise to 3! = 6 different labeled structures.
Similarly,
• Every other unlabeled structure gives rise to 6 different labeled structures.
• Thus, in total 30 different labeled binary trees are possible.
A rooted binary tree is a binary tree that satisfies the following 2 properties-
• It has a root node.
• Each node has at most 2 children.
Example-
2. Full / Strictly Binary Tree-
• A binary tree in which every node has either 0 or 2 children is called as a Full
binary tree.
• Full binary tree is also called as Strictly binary tree.
Example-
Here,
• First binary tree is not a full binary tree.
• This is because node C has only 1 child.
A complete binary tree is a binary tree that satisfies the following 2 properties-
• Every internal node has exactly 2 children.
• All the leaf nodes are at the same level.
Example-
Here,
• First binary tree is not a complete binary tree.
• This is because all the leaf nodes are not at the same level.
An almost complete binary tree is a binary tree that satisfies the following 2 properties-
• All the levels are completely filled except possibly the last level.
• The last level must be strictly filled from left to right.
Example-
Here,
• First binary tree is not an almost complete binary tree.
• This is because the last level is not filled from left to right.
A skewed binary tree is a binary tree that satisfies the following 2 properties-
• All the nodes except one node has one and only one child.
• The remaining node has no child.
OR
A skewed binary tree is a binary tree of n nodes such that its depth is (n-1).
Example-
Binary Tree Representations
A binary tree data structure is represented using two methods. Those methods are as
follows...
1. Array Representation
To represent a binary tree of depth 'n' using array representation, we need one dimensional
We use a double linked list to represent a binary tree. In a double linked list, every node
consists of three fields. First field for storing left child address, second for storing actual data
The above example of the binary tree represented using Linked list representation is shown
as follows...