# DSA Crash Course | Revision Checklist with Interview Guide

Prepare for your upcoming interview with confidence using our comprehensive DSA Revision Checklist Crash Course. This DSA Crash Course not only helps you brush up on key DSA topics but also includes valuable insights for acing technical interviews. Elevate your technical skills and enhance your interview performance with this essential DSA Crash Course.

This comprehensive resource offers a meticulous review of crucial Data Structures and Algorithms concepts, serving as the perfect pre-interview refresher. From fundamental data structures to advanced algorithms, this DSA Revision Checklist ensures you’re well-prepared for the technical challenges that lie ahead.

Below are the topics we will be covering in this article:

**Table of Content**

__Data Structures Last Minute Notes | DSA Crash Course__

Let us begin with the Data Structures in our DSA Revision Checklist:

## 1. Array

An array is a collection of items of same data type stored at contiguous memory locations.

Apart from definitions there are other important topics on Array that you must prepare/revise before the technical Coding round, such as:

- How are Array elements stored in the memory?
- What are Dynamic and Static Arrays?
- How to traverse an Array?
- How to pass an Array to a function?
- How to return an Array from a function?
- What is meant by subarray?
- How to find all subarrays of an Array?
- How to declare Multi-Dimensional Array?

Along with these, below are a list of must do problems on Array for this DSA Crash Course:

Apart from these, there are other interview questions on Array that you should know about.

## 2. String

Strings are defined as an array of characters. The difference between a character array and a string is the string is terminated with a special character ‘\0’.

Apart from definitions, there are other important topics on String that you must prepare/revise before the technical Coding round, such as:

- How is a string stored in the memory?
- What is a mutable and immutable string?
- How to traverse a String?
- What is meant by substring?
- How to find all substrings of an Array?
- Find a pattern in the given string.

Along with these, below are a list of must-do problems on String for this DSA Crash Course:

Apart from these, there are other interview questions on String that you should know about.**Top Interview Coding Question**

## 3. LinkedList

A linked list is a linear data structure, Unlike arrays, linked list elements are not stored at a contiguous location. it is basically chains of nodes, each node contains information such as data and a pointer to the next node in the chain. In the linked list there is a head pointer, which points to the first element of the linked list, and if the list is empty then it simply points to null or nothing.

Apart from definitions, there are other important topics on LinkedList that you must prepare/revise before the technical Coding round, such as:

- Why use a linked list?
- Advantage of linked list over array
- Create a node-linked list
- Insert a node into the linked list
- Delete a node from the linked list
- How to traverse a Linked list?
- Fetching a particular node from the linked list?

Along with these, below are a list of must-do problems on the Linked list for this DSA Crash Course:

Apart from these, there are other interview questions on Linked list that you should know about.**Top Interview Coding Question**

## 4. Stack

Stack is a linear data structure in which insertion and deletion are done at one end this end is generally called the top. It works on the principle of Last In First Out (LIFO) or First in Last out (FILO). LIFO means the last element inserted inside the stack is removed first. FILO means, the last inserted element is available first and is the first one to be deleted.

Apart from definitions, there are other important topics on Stack that you must prepare/revise before the technical Coding round, such as:

Along with these, below are a list of must-do problems on Stack for this DSA Crash Course:

Apart from these, there are other interview questions on Stack that you should know about.**Top Interview Coding Question**

## 5. Queue

A Queue is a linear structure that follows a particular order in which the operations are performed. The order is First In First Out (FIFO). It is similar to the ticket queue outside a cinema hall, where the first person entering the queue is the first person who gets the ticket.

Apart from definitions there are other important topics on Queue that you must prepare/revise before the technical Coding round, such as:

Along with these, below are a list of must-do problems on Queue for this DSA Crash Course:

Apart from these, there are other interview questions on Queue that you should know about.**Top Interview Coding Question**

## 6. Tree

A tree is non-linear and a hierarchical data structure consisting of a collection of nodes such that each node of the tree stores a value and a list of references to other nodes (the “children”).

Apart from definitions there are other important topics on Tree that you must prepare/revise before the technical Coding round, such as:

- How Inserts an element in a tree/create a tree?
- How Searches an element in a tree?
- What are the types of trees?
- How to perform Preorder inorder, post order traversal on a tree?
- How to perform Level order traversal on a tree?

Along with these, below are a list of must-do problems on tree for this DSA Crash Course:

## 7. Binary Search Tree

Binary Search Tree is a node-based binary tree data structure which has the following properties:

- The left subtree of a node contains only nodes with keys lesser than the node’s key.
- The right subtree of a node contains only nodes with keys greater than the node’s key.
- The left and right subtree each must also be a binary search tree.

Apart from definitions, there are other important topics on Binary Search Tree that you must prepare/revise before the technical Coding round, such as:

- How to Implement BST?
- How to insert, update, delete key in the BST.
- How to search a key in given Binary Tree?
- How to perform Preorder inorder, post order traversal on a Binary search tree.

Along with these, below are a list of must-do problems on Binary search tree for this DSA Crash Course:

## 8. Graph

A Graph is a non-linear data structure consisting of nodes and edges. The nodes are sometimes also referred to as vertices and the edges are lines or arcs that connect any two nodes in the graph. More formally a Graph can be defined as, A Graph consisting of a finite set of vertices(or nodes) and a set of edges that connect a pair of nodes.

Apart from definitions there are other important topics on Graph that you must prepare/revise before the technical Coding round, such as:

- What are the Components of a Graph?
- What is the difference between a tree and a Graph?
- How to represent a Graph?
- What are the types of Graphs?
- Breadth-first search (BFS) on Graph
- Depth-first search (DFS) on Graph

Some important Graph Algorithm:

- Dijkstra (Shorter path from a given node to all vertices)
- Flyodd Warshall (Shorter path from every vertex to every other vertex.
- Prim – Minimum spanning tree
- Kruskal – Minimum spanning tree
- Topological sort
- Articulation points in a graph
- Bridges in a graph

Along with these, below are a list of must-do problems on Graph for this DSA Crash Course:

Apart from these, there are other interview questions on Array that you should know about.**Top Interview Coding Question**

## 9. Trie

Trie data structure is defined as a Tree based data structure that is used for storing some collection of strings and performing efficient search operations on them. The word Trie is derived from retrieval, which means finding something or obtaining it.

Trie follows some property that If two strings have a common prefix then they will have the same ancestor in the trie. A trie can be used to sort a collection of strings alphabetically as well as search whether a string with a given prefix is present in the trie or not.

Apart from definitions, there are other important topics on Trie that you must prepare/revise before the technical Coding round, such as:

- How to implement Trie data structure?
- How Insertion perform in trie data structure?
- How do Search a words in trie data structure?
- How to Delete words from Trie data structure?
- How to Search for prefix in the Trie data structure?
- What are the advantage of Trie data structure?

Along with these, below are a list of must-do problems on Trie for this DSA Crash Course:

## 10. Heap

A Heap is a special Tree-based data structure in which the tree is a complete binary tree.

Apart from definitions, there are other important topics on Heap that you must prepare/revise before the technical Coding round, such as:

- How to implement heap data structure?
- What is heapify operation?
- What are the types of Heap data structures?

Along with these, below are a list of must-do problems on Heap for this DSA Crash Course:

## 11. Hash

Hashing refers to the process of generating a fixed-size output from an input of variable size using the mathematical formulas known as hash functions. This technique determines an index or location for the storage of an item in a data structure.

Apart from definitions there are other important topics on Hash that you must prepare/revise before the technical Coding round, such as:

- What are the Components of Hashing?
- How does Hashing work?
- What is collision?
- How to handle Collisions?
- What is meant by Load Factor in Hashing?
- What is Rehashing?

Along with these, below are a list of must-do problems on Hash for this DSA Crash Course:

Apart from these, there are other interview questions on Heap that you should know about.**Top Interview Coding Question**

__Algorithms Last Minute Notes | DSA Crash Course__

Let us now dive into the Algorithms in our DSA Revision Checklist:

## 12. Recursion

The process in which a function calls itself directly or indirectly is called recursion and the corresponding function is called a recursive function.

Apart from definitions, there are other important topics on Recursion that you must prepare/revise before the technical Coding round, such as:

- Why Recursion is needed?
- What are the Properties of Recursion?
- How are recursive functions stored in memory?
- What is the base condition in recursion?
- How a particular problem is solved using recursion?
- Why Stack Overflow error occurs in recursion?
- What is the difference between tailed and non-tailed recursion?
- How memory is allocated to different function calls in recursion?
- What are the advantages of recursive programming over iterative programming?
- What are the disadvantages of recursive programming over iterative programming?

Along with these, below are a list of must-do problems on Recursion for this DSA Crash Course:

## 13. Backtracking

Backtracking can be defined as a general algorithmic technique that considers searching every possible combination in order to solve a computational problem.

Apart from definitions, there are other important topics on Backtracking that you must prepare/revise before the technical Coding round, such as:

- What is Backtracking Algorithm?
- What are the types of Backtracking Algorithms?
- When can be Backtracking Algorithm used?
- What is the difference between Recursion and Backtracking?

Along with these, below are a list of must-do problems on Backtracking for this DSA Crash Course:

Apart from these, there are other interview questions on Backtracking that you should know about.**Top Interview Coding Question**

## 14. Dynamic Programming

Dynamic Programming (DP) is defined as a technique that solves some particular type of problems in Polynomial Time. Dynamic Programming solutions are faster than the exponential brute method and can be easily proved their correctness.

Apart from definitions, there are other important topics on Dynamic Programming that you must prepare/revise before the technical Coding round, such as:

- What is DFS?
- How to classify a problem as a Dynamic Programming Problem?
- Step 2: Deciding the state
- Formulating a relationship among the states
- what is memorization?
- Adding memoization or tabulation for the state
- What is an overlapping subproblem and its property?
- How to Write out the sub-problem as a recurring mathematical relation?
- What are the Difference between Top-down and Bottom-up method?

Along with these, below are a list of must-do problems in Dynamic programming for this DSA Crash Course:

Apart from these, there are other interview questions on Dynamic Programming that you should know about.**Top Interview Coding Question**

## 15. Greedy Algorithms

Greedy Algorithm is defined as a method for solving optimization problems by taking decisions that result in the most evident and immediate benefit irrespective of the final outcome. It works for cases where minimization or maximization leads to the required solution.

Apart from definitions, there are other important topics on Greedy Algorithms that you must prepare/revise before the technical Coding round, such as:

- What is the basic structure that all greedy algorithms follow?
- Why choose Greedy Approach?
- How does the Greedy Algorithm works?
- Difference between Greedy and Dynamic Programming?

Along with these, below are a list of must-do problems in Greedy Algorithms for this DSA Crash Course:

Apart from these, there are other interview questions on Greedy Algorithms that you should know about.**Top Interview Coding Question**

## 16. Sorting and Searching

A Sorting Algorithm is used to rearrange a given array or list of elements according to a comparison operator on the elements. The comparison operator is used to decide the new order of elements in the respective data structure. Whereas searching is an algorithm to search some elements in the list of elements.

Apart from definitions, there are other important topics on Sorting and Searching that you must prepare/revise before the technical Coding round, such as:

- Working and implementing of Bubble Sort.
- Working and implementation of Insertion Sort
- Working and implementation of Merge Sort
- Working and implementation of Heap Sort (Binary Heap)
- Working and implementation of Quick Sort
- Implement of Binary Search Algorithm

Along with these, below are a list of must-do problems in Sorting and Searching for this DSA Crash Course:

## 17. Pattern Searching

Pattern Searching algorithms are used to find a pattern or substring from another bigger string. There are different algorithms. The main goal to design these type of algorithms to reduce the time complexity. The traditional approach may take lots of time to complete the pattern searching task for a longer text.

Apart from definitions, there are other important topics on Pattern Searching that you must prepare/revise before the technical Coding round, such as:

- Algorithms based on character comparison
- Algorithms based on Bit (parallelism method)
- Hashing-string matching algorithms

Along with these, below are a list of must-do problems in Pattern Searching for this DSA Crash Course:

Question | Practice |
---|---|

Wildcard Pattern Matching | Link |

Z algorithm | Link |

Pattern Searching | Link |

## 18. Divide and Conquer Algorithms

Divide and Conquer is an algorithmic paradigm in which the problem is solved using the Divide, Conquer, and Combine strategy.

Apart from definitions, there are other important topics on Divide and Conquer that you must prepare/revise before the technical Coding round, such as:

- How do Divide and Conquer Algorithms Work?
- what is the difference between Divide and Conquer Vs Dynamic approach?
- What are the Advantages of Divide and Conquer Algorithm?

Apart from definitions, there are other important topics on Divide and Conquer that you must prepare/revise before the technical Coding round, such as:

## 19. Number Theory

Number theory is a branch of pure mathematics devoted to the study of the natural numbers and the integers. It is the study of the set of positive whole numbers which are usually called the set of natural numbers. As it holds the foundational place in the discipline, Number theory is also called

“The Queen of Mathematics”.

Apart from definitions, there are other important topics on Number Theory that you must prepare/revise before the technical Coding round, such as:

- How to calculate GCD and LCM
- How to calculate LCM of array
- How to calculate GCD of array
- What are Basic and Extended Euclidean algorithms?

Along with these, below are a list of must-do problems in Number Theory for this DSA Crash Course:

## 20. Bit Manipulation

The Bitwise Algorithms is used to perform operations at the bit-level or to manipulate bits in different ways. The bitwise operations are found to be much faster and are sometimes used to improve the efficiency of a program.

Apart from definitions, there are other important topics on Bit Manipulation that you must prepare/revise before the technical Coding round, such as:

- Knowing all about Bit operators

Along with these, below are a list of must-do problems in Bit Manipulation for this DSA Crash Course:

**Related posts:**

__Commonly Asked Data Structure Interview Questions____Must Do Coding Questions for Companies like Amazon, Microsoft, Adobe, …__

**Some other important Tutorials:**

__DSA Tutorial____System Design Tutorial____Software Development Roadmap____Roadmap to become a Product Manager____Learn SAP____Learn SEO__