- Arrays
- Linked Lists
- Singly Linked Lists
- Doubly Linked Lists
- Circular Linked Lists
- Stacks
- Queues
- Linear Queues
- Circular Queues
- Priority Queues
- Trees
- Binary Trees
- Binary Search Trees (BST)
- AVL Trees (Balanced Binary Search Trees)
- Red-Black Trees
- B-Trees
- Heaps (Binary Heaps)
- Graphs
- Directed Graphs
- Undirected Graphs
- Weighted Graphs
- Directed Acyclic Graphs (DAGs)
- Hash Tables (Hash Maps)
- Tries (Prefix Trees)
- Disjoint Set (Union-Find)
- Priority Queues (Heap)
- Segment Trees
- Fenwick Trees (Binary Indexed Trees)
- Skip Lists
- Bloom Filters
- Searching Algorithms
- Linear Search
- Binary Search
- Depth-First Search (DFS)
- Breadth-First Search (BFS)
- Sorting Algorithms
- Bubble Sort
- Selection Sort
- Insertion Sort
- Merge Sort
- Quick Sort
- Heap Sort
- Counting Sort
- Radix Sort
- Recursion
- Dynamic Programming
- Greedy Algorithms
- Divide and Conquer
- Graph Algorithms
- Shortest Path Algorithms (Dijkstra's, Bellman-Ford, Floyd-Warshall)
- Minimum Spanning Tree (Prim's, Kruskal's)
- Topological Sorting
- Strongly Connected Components (SCC)
- Graph Traversal Algorithms (DFS, BFS)
- String Algorithms
- String Matching (KMP, Rabin-Karp)
- Longest Common Subsequence (LCS)
- Longest Increasing Subsequence (LIS)
- Numerical Algorithms
- Primality Testing
- Factorization
- Greatest Common Divisor (GCD)
- Fast Exponentiation
- Modular Arithmetic
- Online Algorithms
- Approximation Algorithms
- Randomized Algorithms
- Parallel Algorithms
- External Memory Algorithms
- Combinatorial Optimization
- Network Flow Algorithms
- Computational Geometry
- String Matching Algorithms (Suffix Trees, Aho-Corasick)
- Cache-Efficient Algorithms
- Python Data Structures and Built-in Functions
- List Comprehensions
- Lambda Functions
- Generators and Iterators
- Decorators
- Object-Oriented Programming (OOP) in Python
- Python Libraries for Data Structures and Algorithms (e.g.,
collections
,heapq
,itertools
)