-
Data Structures:
- String
- Array
- Linked List
- Stack
- Queue
- Tree
- Binary Tree
- Binary Search Tree
- Efficient BSTs
- Optimal BST
- AVL tree
- Red Black Trees
- Splay Trees
- Efficient BSTs
- Heap
- Min Heap
- Max Heap
- Binomial heaps
- Fibonacci Heaps
- Pairing Heaps
- Interval Heaps
- Priority Queue
- Selection Trees
- Counting Binary Trees
- Forests
- Multiway Search Trees
- B Trees
- B+ Trees
- Tries
- Binary Tries
- Multiway Tries
- Suffix Tree
- Binary Indexed Tree or Fenwick Tree
- Graph
-
Containers:
- Vector
- Map
- Set
- Multimap
- Multiset
-
Algorithms:
- Sorting Algorithms
- Quick sort
- Bubble sort
- Merge sort
- Heap sort
- Insertion sort
- Counting sort
- Radix sort
- Searching Algorithms
- Graph Algorithms 8. Topological sorting
- Sorting Algorithms
-
Techniques:
- Two pointer
- Sliding Window
- Hashing
- Collision handling
- Bloom filters
- Bit manipulation
- Prefix Sum
- DFS
- BFS
- Recursion
- Dynamic Programming
- Memoization
- Tabulation
- Space Optimization
- 1D
- 2D
- top-down
- Greedy
- Divide and Conquer
- Tree Traversals 6. In Order 7. Pre Order 8. Post Order 9. Level Order
- Backtracking 10. Matrix traversal
- Monotonic Stack
- Overlapping intervals
- Disjoint Sets
-
Concepts:
- Time and Space Complexities
- Recurrence Relation
- Master theorem
- Complexity Classes