Data-Structures-and-Algos icon indicating copy to clipboard operation
Data-Structures-and-Algos copied to clipboard

Important Data Structures and Algorithms

Data-Structures-and-Algorithms

Important Data Structures and Algorithms.

Arrays

  • [ ] Binary Search (TopCoder)
  • [ ] Sieve
  • [x] Catalan Numbers
  • [ ] Sliding Window Technique
  • [ ] Recursion and Backtracking
  • [ ] N_Queens (BacktoBackSWE)
  • [ ] Tortoise and Hare Pointer

Bit Manipulation

  • [ ] Count Set Bits

BST

  • [ ] Search, Insert, Delete, Find
  • [ ] Leetcode List

Dynamic Programming

Graphs

  • [x] 0-1 BFS
  • [x] BFS
  • [x] BFS - 2d matrix
  • [x] BFS - Shortest Path in Unweighted Graph
  • [x] BFS - Bi-partite Graph
  • [x] BFS - Bi-Directional BFS
  • [x] DFS
  • [x] DFS - Connected Components
  • [x] DFS - All Ancestors in DAG
  • [x] DFS - Calculate entry and exit time
  • [x] DFS - Topological Sort
  • [x] DFS - 2d matrix
  • [x] DFS - Graph Colouring to Find Cycle
  • [ ] DFS - LCA
  • [x] Dijisktra **
  • [x] Disjoint Set Union **
  • [x] Kruskal using DSU
  • [ ] Kosaraju SCC (https://www.youtube.com/watch?v=RpgcYiky7uw)
  • [ ] Kahn's Algo for Top Sort
  • [ ] Articulation Points (https://cp-algorithms.com/graph/cutpoints.html)

Hashing

  • [ ] Various Types of Hashing
  • [ ] Rolling Hash

Heap

Linked List

  • [x] Insert
  • [x] Delete Nth Node
  • [x] Reverse
  • [ ] Merge Two Sorted Linked List
  • [ ] Fast Pointer, Slow Pointer technique
  • [ ] Doubly Linked List

Searching and Sorting

  • [x] Bubble Sort
  • [x] Insertion Sort
  • [x] Quick Sort
  • [ ] Merge Sort
  • [ ] Inversion Count
  • [ ] Count Numbers Larger and Smaller than Self
  • [ ] Radix Sort
  • [ ] Count Sort
  • [ ] Heap Sort
  • [ ] Binary Search

Stack and Queues

  • [ ] LRU Cache
  • [ ] LFU Cache

Trees/Tries

  • [x] Flatten Tree
  • [x] Height of Tree
  • [x] Iterative Traversals
  • [x] Lowest Common Ancestor
  • [x] Level Order Traversal
  • [x] Diameter of a Binary Tree
  • [x] Recursive Traversals
  • [ ] Diagonal Traversal
  • [ ] Vertical Traversal
  • [ ] Serialize and Deserialize Trees
  • [x] Trie
  • [ ] Rope Structure

Strings

  • [ ] Manacher's Algorithm
  • [ ] Rabin Karp
  • [ ] Palindrome Type Questions

Design Questions

  • [ ] Max Stack
  • [ ] Design twitter

Operating Systems

  • [ ] SJF
  • [ ] FCFS
  • [ ] Round Robin
  • [ ] Print numbers in sequence using different threads.
  • [ ] Bounded Buffer Problem
  • [ ] Dining Philosophers Problem
  • [ ] The Readers Writers Problem
  • [ ] LRU Cache
  • [ ] Banker's Algorithm

Optional/Theory only

  • [ ] Binary Indexed Tree
  • [x] Segment Tree
  • [x] Segment Tree (RMQ)
  • [ ] AVL Tree
  • [ ] KMP
  • [ ] Cartesian Tree
  • [ ] Floyd Warshall
  • [ ] Convex Hull
  • [ ] Line Sweep
  • [ ] Manacher's Algorithm
  • [ ] All applications of DSU