- Trending Categories
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
Physics
Chemistry
Biology
Mathematics
English
Economics
Psychology
Social Studies
Fashion Studies
Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Binary Tree Representation in Data Structures
Here we will see how to represent a binary tree in computers memory. There are two different methods for representing. These are using array and using linked list.
Suppose we have one tree like this −
The array representation stores the tree data by scanning elements using level order fashion. So it stores nodes level by level. If some element is missing, it left blank spaces for it. The representation of the above tree is like below −
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
10 | 5 | 16 | - | 8 | 15 | 20 | - | - | - | - | - | - | - | 23 |
The index 1 is holding the root, it has two children 5 and 16, they are placed at location 2 and 3. Some children are missing, so their place is left as blank.
In this representation we can easily get the position of two children of one node by using this formula −
$$child_{1}=2*parent$$
$$child_{2}=\lgroup2*parent\rgroup+1$$
To get parent index from child we have to follow this formula −
$$parent=\begin{bmatrix}\frac{child}{2} \end{bmatrix}$$
This approach is good, and easily we can find the index of parent and child, but it is not memory efficient. It will occupy many spaces that has no use. This representation is good for complete binary tree or full binary tree.
Another approach is by using linked lists. We create node for each element. This will be look like below −
- Related Articles
- Binary Tree Traversals in Data Structures
- Postorder Tree Traversal in Data Structures
- Preorder Tree Traversal in Data Structures
- Minimum Spanning Tree in Data Structures
- Binary Search Trees in Data Structures
- Level Order Tree Traversal in Data Structures
- Binary Trees and Properties in Data Structures
- Optimal Binary Search Trees in Data Structures
- Binary Tree ADT in Data Structure
- Unrooted binary tree in Data Structure
- Golang program to implement binary tree data structure
- Python program to implement binary tree data structure
- Binary Tree to Binary Search Tree Conversion in C++
- Abstract Data Type in Data Structures
- Difference between Binary Tree and Binary Search Tree
