/Data-Structures-and-Algos

Important Data Structures and Algorithms

Primary LanguageC++

Data-Structures-and-Algorithms

Important Data Structures and Algorithms.

Arrays

  • Binary Search (TopCoder)
  • Sieve
  • 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

  • 0-1 BFS
  • BFS
  • BFS - 2d matrix
  • BFS - Shortest Path in Unweighted Graph
  • BFS - Bi-partite Graph
  • BFS - Bi-Directional BFS
  • DFS
  • DFS - Connected Components
  • DFS - All Ancestors in DAG
  • DFS - Calculate entry and exit time
  • DFS - Topological Sort
  • DFS - 2d matrix
  • DFS - Graph Colouring to Find Cycle
  • DFS - LCA
  • Dijisktra **
  • Disjoint Set Union **
  • Kruskal using DSU

Hashing

  • Various Types of Hashing
  • Rolling Hash

Heap

Linked List

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

Searching and Sorting

  • Bubble Sort
  • Insertion Sort
  • 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

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

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
  • Segment Tree
  • Segment Tree (RMQ)
  • AVL Tree
  • KMP
  • Cartesian Tree
  • Floyd Warshall
  • Convex Hull
  • Line Sweep
  • Manacher's Algorithm
  • All applications of DSU