Welcome
everyone, to our Data Structures website! Here, you'll discover a treasure trove of learning resources a comprehensive, line-by-line roadmap. By simply following these resources, you'll excel in your college or university exams. Explore our platform and embrace this roadmap designed to help you succeed in your academic journey! Data structures is like a topic where people struggle a lot just because not following the correct learning path. Well this was a problem for me as well but here is a solution for you.
Basic DS Curriculum
Array
Linked List
Stack
Queue
Recursion
Hashing
Tree
Heap
So Data Structures is a really important topic. The best practice can be if you can learn a topic and at the same time you need to practice all problems related to that particular topic. Many people can understand the theory but fail to implement in code. So enough practice can help you in this case. Learning any topic has two way. One you can watch video tutorials and on the other hand you can read documentations. Well as a begineer watching video tutorial is not a bad habit . But if you can create a habit of reading documentations then it will help you in future as well when you are working in industry.
About Me
Hello! I'm Badhon, studying Computer Science at BracU. I love tech and get excited about new things like making games, analyzing data, and solving problems .I'm always exploring new stuff in tech, trying to learn as much as I can. I'm into creating games and finding stories in numbers. I'm like an adventurer in the world of tech, always learning and growing. Come join me on this fun journey through the amazing world of technology!
Resources
So I am making this like a roadmap, So in every section you will find necessary practice problems , documentations and also video lectures which will help you to learn.
Array
As I said Reading Documentations Can be best way to clear your concept. So here I am giving you some links you can read this and note down important information;
Array Data Structures using C programming Check out the full playlist by just clicking this yellow button
For implementing array in Python you will need numpy so you can learn it from here
Now that you've learned a lot, as I mentioned earlier, practicing is essential. There are numerous platforms available for practicing coding problems, but I personally prefer LeetCode for sharpening DSA skills. It's one of the most organized and renowned platforms.
Here is the problem list which can help you to clear your concept.
Linked List
Here is the problem list which can help you to clear your concept.
Stack & Queue
Documentations for Stack
Documentations for Queue
Here is the problem list which can help you to clear your concept.
Recursion
Here is the problem list which can help you to clear your concept.
Write a recursive function to calculate the factorial of a number.
Implement a recursive function to calculate the nth Fibonacci number.
Write a recursive function to find the sum of the first N natural numbers.
Write a recursive function to find the length of a given string.
Implement a recursive function to reverse a string.
Write a recursive function to calculate the sum of all elements in an array.
Implement a recursive function to find the maximum element in an array( in a sequence).
Write a recursive function to find the minimum element in an array.
Implement a recursive function to check if a string is a palindrome.
Write a recursive function to compute the power of a number (a^b).
Write a recursive function to compute the harmonic sum of n numbers.
Implement a recursive function to find the GCD (greatest common divisor) of two numbers.
Write a recursive function to print the first N natural numbers in reverse order.
Implement a recursive function to print the elements of an array in reverse order.
Write a recursive function to check if an array is sorted.
Implement a recursive function to calculate the sum of even numbers from 1 to N.
Write a recursive function to count the number of digits in a positive integer.
Implement a recursive function to find the nth term sum of the geometric progression: a+ ar+ar^2 + ...
Write a recursive function to compute the product of two numbers without using the multiplication operator.
Write a recursive function to find the nth term of the arithmetic progression: a, a+d, a+2d, ...
Implement a recursive function to calculate the sum of the digits of a positive integer.
Write a recursive function to find the LCM (least common multiple) of two numbers.
Write a recursive function to check if a given number is a prime number.
Write a recursive function to find if a number is a perfect number or not.
Implement a recursive function to find the sum of digits in a string (consider digits as characters).
Implement a recursive function to find the number of ways to climb N steps if you can take 1 or 2 steps at a time. → (Same to fibonacci Series)
Implement a recursive function to find the number of subsets of a set with N elements.
Implement a recursive function to convert decimal numbers to binary numbers.
Implement a recursive function to convert binary numbers to decimal numbers.
Write a recursive function to find the nth term of the Lucas sequence (similar to Fibonacci).
Implement a recursive function to find the sum of the digits of a positive integer until a single-digit result is obtained.
Implement a recursive function to find the length of a linked list.
Implement a recursive function for Sequential search in a sequence for array and linked list.
Implement Binary Search using recursion.
Implement a recursive function to find the maximum element in an array(Binary Version).
Pattern Printing Using Recursion
Divide a number using recursion
Print a linked list in reverse and normal.
SQRT of a number using binary search.
and you can try at Leetcode as well
Find all the solutions for this problem list in the following repository, but I request that you give every single problem a try before watching the solution. Remember, watching my solution may help you, but it will hamper your learning. If you find any issue with the solution please let me know , I really appreciate. 😃
Hashing & Hashmap
Here is the problem list which can help you to clear your concept.
Create hashtable using array
Create forward chaining function using linked list
Create delete function to delete any given element if it exist
Create Linear Probing function for inserting element in hashtable
Design Hash function
Insert any element using double hashing
find duplicate number in hashtable using hashing
find targeted sum of 2 number using hashtable
sort an array using key-indexing
search for any value in hashtable using key-indexing
Binary Tree & Binary Search Tree
Here is the problem list on Binary Tree which can help you to clear your concept.
Calculate the height of a binary tree.
Count the total number of nodes in a binary tree.
Check if a given binary tree is a full binary tree.
Perform a level order traversal of a binary tree.
Check if two binary trees are identical.
Find the maximum element in a binary tree.
Check if a binary tree is a binary search tree.
Find the lowest common ancestor (LCA) of two nodes in a binary tree.
Check if a binary tree is balanced.
Calculate the total number of leaf nodes in a binary tree.
Check if a binary tree is symmetric around its centre.
Calculate the width of each level of a binary tree.
Check if a binary tree is a perfect binary tree.
Find the depth of a given node in a binary tree.
Check if a binary tree is a subtree of another binary tree.
Print the ancestors of a given node in a binary tree.
Check if the sum of all nodes on each level of a binary tree is odd or even.
Check if a binary tree is a complete binary tree.
Calculate the number of nodes at the deepest level of a binary tree.
Find the maximum width of a binary tree at any level.
Check if a binary tree is a degenerate or skewed tree.
Swap the left and right children of all nodes in a binary tree.
Write a program to check if a binary tree is a sum tree (where each node is the sum of its left and right children).
Count the number of paths in a binary tree that sum up to a given value.
Print all nodes at distance k from the root in a binary tree.
Check if a binary tree is a mirror/isSymmetric image of itself.
Determine if there exists a path from the root to a leaf node with a given sum in a binary tree.
Implement an algorithm to check if a binary tree is a balanced binary tree.
Create a function to check if a binary tree is a foldable tree.
Implement a function to count the number of paths that sum up to zero in a binary tree.
Write a function to count the number of nodes in the longest path of a binary tree.
Write a function to find the max depth of a binary tree.
Write a function to construct a binary tree from an array
Write a function to construct an array from a binary tree
Write a function to find the sum of leaf nodes
Evaluate Boolean Binary Tree
Here is the problem list on Binary Search Tree which can help you to clear your concept.
Search for a key in a binary search tree.
Find the minimum element in a binary search tree.
Find the inorder successor in a binary search tree.
Check if a binary tree is a valid binary search tree.
Find the floor and ceiling of a given key in a binary search tree.
Find the range sum of values in a binary search tree within a given range.
Check if a given value is present within a specific range in a binary search tree.
Count the number of nodes in a binary search tree with a value less than a given value.
Find the maximum element that is less than a given value in a binary search tree.
Calculate the sum of all nodes in a binary search tree.
Count the number of subtrees in a binary search tree.
Find the maximum difference between any two nodes in a binary search tree.
Find the maximum leaf to root path sum in a binary search tree.
Convert a given sorted array into a balanced binary search tree.
Find the predecessor of a given node in a binary search tree.
Delete all nodes with a value greater than a given value in a binary search tree.
Find the level of a given node in a binary search tree.
Find the number of elements between two given nodes in a binary search tree.
Merge two binary search trees into one, preserving the BST property.
Check if two BSTs have the same set of elements.
Find the second largest element in a binary search tree.
Convert a given BST into a singly linked list in-place.
Determine if there exists a path from the root to a leaf node with a given sum in a BST.
Write a function to find the height of a given node in a binary search tree.
Implement a function to check if a binary search tree contains a given path or sequence.
Create a function to determine if a binary search tree contains a pair of elements that sum up to a given value.
Create a function to create a balanced search binary from an unbalanced binary search tree.
Working on the rest of the part....🌝