diff --git a/content/roadmaps/107-python/content/101-data-structures-and-algorithms/100-arrays-linked-lists.md b/content/roadmaps/107-python/content/101-data-structures-and-algorithms/100-arrays-linked-lists.md
index 737e6a9d2..e5170250e 100644
--- a/content/roadmaps/107-python/content/101-data-structures-and-algorithms/100-arrays-linked-lists.md
+++ b/content/roadmaps/107-python/content/101-data-structures-and-algorithms/100-arrays-linked-lists.md
@@ -1 +1,16 @@
-# Arrays linked lists
\ No newline at end of file
+# Arrays and Linked lists
+
+Arrays store elements in contiguous memory locations, resulting in easily calculable addresses for the elements stored and this allows faster access to an element at a specific index. Linked lists are less rigid in their storage structure and elements are usually not stored in contiguous locations, hence they need to be stored with additional tags giving a reference to the next element. This difference in the data storage scheme decides which data structure would be more suitable for a given situation.
+
+Free Content
+Linked Lists vs Arrays
+A Complete Guide to Linked Lists in Python
+Python Array Tutorial
+Python Arrays
+Arrays in Python
+Array Data Structure | Illustrated Data Structures
+Linked List Data Structure | Illustrated Data Structures
+
+
+
+
diff --git a/content/roadmaps/107-python/content/101-data-structures-and-algorithms/101-heaps-stacks-queues.md b/content/roadmaps/107-python/content/101-data-structures-and-algorithms/101-heaps-stacks-queues.md
index f1525a4b1..787759dd4 100644
--- a/content/roadmaps/107-python/content/101-data-structures-and-algorithms/101-heaps-stacks-queues.md
+++ b/content/roadmaps/107-python/content/101-data-structures-and-algorithms/101-heaps-stacks-queues.md
@@ -1 +1,18 @@
-# Heaps stacks queues
\ No newline at end of file
+# Heaps Stacks and Queues
+
+**Stacks:** Operations are performed LIFO (last in, first out), which means that the last element added will be the first one removed. A stack can be implemented using an array or a linked list. If the stack runs out of memory, it’s called a stack overflow.
+
+**Queue:** Operations are performed FIFO (first in, first out), which means that the first element added will be the first one removed. A queue can be implemented using an array.
+
+**Heap:** A tree-based data structure in which the value of a parent node is ordered in a certain way with respect to the value of its child node(s). A heap can be either a min heap (the value of a parent node is less than or equal to the value of its children) or a max heap (the value of a parent node is greater than or equal to the value of its children).
+
+Free Content
+Heaps, Stacks, Queues
+Stack Data Structure | Illustrated Data Structures
+Queue Data Structure | Illustrated Data Structures
+Stack in Python
+How to Implement Python Stack?
+Queue in Python
+Python Stacks, Queues, and Priority Queues in Practice
+Heap Implementation in Python
+
diff --git a/content/roadmaps/107-python/content/101-data-structures-and-algorithms/102-hash-tables.md b/content/roadmaps/107-python/content/101-data-structures-and-algorithms/102-hash-tables.md
index 831fbe707..d9eb449db 100644
--- a/content/roadmaps/107-python/content/101-data-structures-and-algorithms/102-hash-tables.md
+++ b/content/roadmaps/107-python/content/101-data-structures-and-algorithms/102-hash-tables.md
@@ -1 +1,9 @@
-# Hash tables
\ No newline at end of file
+# Hash Tables
+
+Hash Table, Map, HashMap, Dictionary or Associative are all the names of the same data structure. It is a data structure that implements a set abstract data type, a structure that can map keys to values.
+
+Free Content
+Hash Table Data Structure | Illustrated Data Structures
+Hash Tables and Hashmaps in Python
+Build a Hash Table in Python
+
diff --git a/content/roadmaps/107-python/content/101-data-structures-and-algorithms/103-binary-search-trees.md b/content/roadmaps/107-python/content/101-data-structures-and-algorithms/103-binary-search-trees.md
index 340c7a56f..d74b48cd9 100644
--- a/content/roadmaps/107-python/content/101-data-structures-and-algorithms/103-binary-search-trees.md
+++ b/content/roadmaps/107-python/content/101-data-structures-and-algorithms/103-binary-search-trees.md
@@ -1 +1,10 @@
-# Binary search trees
\ No newline at end of file
+# Binary Search Trees
+
+A binary search tree, also called an ordered or sorted binary tree, is a rooted binary tree data structure with the key of each internal node being greater than all the keys in the respective node's left subtree and less than the ones in its right subtree
+
+Free Content
+Tree Data Structure | Illustrated Data Structures
+Writing a Binary Search Tree in Python with Examples
+How to Implement Binary Search Tree in Python
+
+
diff --git a/content/roadmaps/107-python/content/101-data-structures-and-algorithms/104-recursion.md b/content/roadmaps/107-python/content/101-data-structures-and-algorithms/104-recursion.md
index a27651655..bb12a5479 100644
--- a/content/roadmaps/107-python/content/101-data-structures-and-algorithms/104-recursion.md
+++ b/content/roadmaps/107-python/content/101-data-structures-and-algorithms/104-recursion.md
@@ -1 +1,8 @@
-# Recursion
\ No newline at end of file
+# Recursion
+
+Recursion is a method of solving a computational problem where the solution depends on solutions to smaller instances of the same problem. Recursion solves such recursive problems by using functions that call themselves from within their own code.
+
+Free Content
+Recursion in Python
+Recursion in Python: An Introduction
+
diff --git a/content/roadmaps/107-python/content/101-data-structures-and-algorithms/readme.md b/content/roadmaps/107-python/content/101-data-structures-and-algorithms/readme.md
index 8287335e3..7403956fc 100644
--- a/content/roadmaps/107-python/content/101-data-structures-and-algorithms/readme.md
+++ b/content/roadmaps/107-python/content/101-data-structures-and-algorithms/readme.md
@@ -1 +1,7 @@
-# Data structures and algorithms
\ No newline at end of file
+# Data Structures and Algorithms
+
+A data structure is a named location that can be used to store and organize data. And, an algorithm is a collection of steps to solve a particular problem. Learning data structures and algorithms allow us to write efficient and optimized computer programs.
+
+Free Content
+Learn DS & Algorithms
+Data Structures Illustrated