Skip to content

mt-shihab26/dsa_library

Repository files navigation

Basic Level (Foundations in C and Simple DSA Concepts)

1. C Programming Fundamentals

  • Data types, variables, operators
  • Conditional statements (if, switch)
  • Loops (for, while, do-while)
  • Functions and recursion
  • Arrays and strings
  • Pointers and memory management (malloc, free)
  • Structures and unions

2. Basic Algorithms

  • Linear search,
  • Binary search
  • Selection sort
  • Bubble sort
  • Insertion sort
  • Counting sort
  • Fibonacci recursion examples
  • Factorial recursion examples

3. Basic Data Structures

  • 1d array
  • 2d array
  • Singly Linked List (Basic operations: insertion, deletion, traversal)

4. Complexity

  • constant
  • logarithmic
  • linear
  • quadratic
  • cubic

Intermediate Level (Core DSA Mastery in C)

5. Linked Lists

  • Singly Linked List
  • Doubly Linked List
  • Circular Linked List

6. Stacks and Queues

  • Dynamic Array
  • Stack
  • Queue
  • Circular Queue

7. Recursion & Backtracking

  • Recursion
  • Backtracking

8. Trees

  • Binary Tree and Binary Search Tree (BST)
  • Tree traversals (Inorder, Preorder, Postorder)
  • Height, diameter, leaf nodes
  • Basic tree operations (insertion, deletion, search)

9. Sorting Algorithms (Efficient)

  • Merge Sort
  • Quick Sort
  • Heap Sort (introduction to heaps)

Advanced Level (Optimizations, Graphs, Complex Problems)

10. Advanced Trees

  • AVL Trees
  • B-Trees and B+ Trees (basics)
  • Segment Tree
  • Trie (Prefix Tree)

11. Heaps

  • Min Heap and Max Heap implementation
  • Heapify and Priority Queue using Heaps

12. Graphs

  • Representation (Adjacency Matrix, List)
  • Traversal (BFS, DFS)
  • Topological Sort
  • Shortest Path Algorithms (Dijkstra, Bellman-Ford)
  • Minimum Spanning Tree (Prim’s, Kruskal’s)

13. Dynamic Programming (DP)

  • Memoization vs Tabulation
  • Classic problems:
    • Fibonacci
    • 0/1 Knapsack
    • Longest Common Subsequence (LCS)
    • Matrix Chain Multiplication
    • Coin Change

14. Greedy Algorithms

  • Activity Selection
  • Huffman Encoding
  • Fractional Knapsack

14. Bit Manipulation

  • Bitwise operations in C
  • Applications (checking power of 2, counting bits)

Learning Tips:

  • Practice problems on each topic (LeetCode, HackerRank, Codeforces)
  • Implement every data structure from scratch in C
  • Use dry run and visualization tools (like VisuAlgo)
  • Participate in contests to sharpen algorithmic thinking


Expert-Level DSA & Problem Solving (Post-Advanced)


15. Advanced Graph Algorithms

  • Strongly Connected Components (Kosaraju’s, Tarjan’s)
  • Union-Find / Disjoint Set Union (DSU) with Path Compression
  • Lowest Common Ancestor (Binary Lifting)
  • Dijkstra with Binary Heap / Fibonacci Heap
  • Floyd-Warshall & Johnson’s Algorithm
  • Euler Tour (for tree problems)
  • Articulation Points & Bridges
  • Network Flow:
    • Ford-Fulkerson
    • Edmonds-Karp
    • Dinic’s Algorithm

16. Advanced Dynamic Programming

  • Bitmask DP
  • DP on Trees
  • DP with Knuth Optimization
  • DP with Divide & Conquer Optimization
  • DP on Graphs
  • Digit DP
  • Convex Hull Trick & Li-Chao Segment Tree

17. Computational Geometry

  • Convex Hull (Graham's scan, Andrew’s monotone chain)
  • Line Intersection
  • Rotating Calipers
  • Sweep Line Algorithms
  • Point in Polygon
  • Closest Pair of Points

18. Advanced Data Structures

  • Segment Trees with Lazy Propagation
  • Persistent Segment Trees
  • Binary Indexed Tree (Fenwick Tree)
  • Suffix Arrays and LCP Array
  • Sparse Tables (for RMQ)
  • Treaps, Splay Trees, AVL Trees (Self-balancing BSTs)
  • Link-Cut Trees
  • Heavy-Light Decomposition (HLD)

19. Mathematics for CS

  • Number Theory:

    • Modular Arithmetic
    • Sieve of Eratosthenes
    • Fermat's Little Theorem
    • Extended Euclidean Algorithm
  • Combinatorics:

    • Catalan Numbers
    • Inclusion-Exclusion Principle
    • Pigeonhole Principle
  • Fast Exponentiation

  • Matrix Exponentiation

  • FFT (Fast Fourier Transform)

  • Chinese Remainder Theorem


20. Advanced String Algorithms

  • KMP Algorithm
  • Z-Algorithm
  • Aho-Corasick (Multi-pattern matching)
  • Rabin-Karp (Hashing)
  • Suffix Trees & Suffix Automaton
  • Rolling Hash

21. Competitive Programming Topics

  • Game Theory (Grundy Numbers, Nim Game)
  • Mo’s Algorithm (Query Optimization)
  • Interactive Problems
  • Online Algorithms
  • Implicit Treaps & Rope Data Structures

Tools & Practice Platforms

  • Codeforces (div 1/2/3 problems)
  • AtCoder (ABC, ARC, AGC)
  • TopCoder (SRMs)
  • USACO / CSES / SPOJ
  • CS Academy, Timus Online Judge
  • ICPC problems / CodeChef contests

Suggested Books

  • "Competitive Programming" by Halim Brothers
  • "Algorithm Design Manual" by Steven Skiena
  • "Introduction to Algorithms" (CLRS)
  • "Programming Challenges" by Skiena & Revilla
  • "Advanced Data Structures" by Peter Brass

If you're aiming for research, academia, or very high-level optimization problems, you can also explore:

  • Parallel Algorithms
  • Approximation Algorithms
  • Online Algorithms and Real-Time Systems
  • Quantum Algorithms (for theoretical interest)

About

Data Structures and Algorithms Implementation with C++

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages