1. Data Structures:

    1. String
    2. Array
    3. Linked List
    4. Stack
    5. Queue
    6. Tree
      1. Binary Tree
      2. Binary Search Tree
        1. Efficient BSTs
          1. Optimal BST
          2. AVL tree
          3. Red Black Trees
          4. Splay Trees
      3. Heap
        1. Min Heap
        2. Max Heap
        3. Binomial heaps
        4. Fibonacci Heaps
        5. Pairing Heaps
        6. Interval Heaps
      4. Priority Queue
      5. Selection Trees
      6. Counting Binary Trees
      7. Forests
      8. Multiway Search Trees
        1. B Trees
        2. B+ Trees
      9. Tries
        1. Binary Tries
        2. Multiway Tries
      10. Suffix Tree
      11. Binary Indexed Tree or Fenwick Tree
    7. Graph
  2. Containers:

    1. Vector
    2. Map
    3. Set
    4. Multimap
    5. Multiset
  3. Algorithms:

    1. Sorting Algorithms
      1. Quick sort
      2. Bubble sort
      3. Merge sort
      4. Heap sort
      5. Insertion sort
      6. Counting sort
      7. Radix sort
    2. Searching Algorithms
    3. Graph Algorithms 8. Topological sorting
  4. Techniques:

    1. Two pointer
    2. Sliding Window
    3. Hashing
      1. Collision handling
      2. Bloom filters
    4. Bit manipulation
    5. Prefix Sum
    6. DFS
    7. BFS
    8. Recursion
    9. Dynamic Programming
      1. Memoization
      2. Tabulation
        1. Space Optimization
      3. 1D
      4. 2D
      5. top-down
    10. Greedy
    11. Divide and Conquer
    12. Tree Traversals 6. In Order 7. Pre Order 8. Post Order 9. Level Order
    13. Backtracking 10. Matrix traversal
    14. Monotonic Stack
    15. Overlapping intervals
    16. Disjoint Sets
  5. Concepts:

    1. Time and Space Complexities
    2. Recurrence Relation
    3. Master theorem
    4. Complexity Classes