HOME / CATALOG / DATA STRUCTURES AND ALGORITHMS
01
ROADMAP / INTERMEDIATE

Data Structures and Algorithms

30 TOPICS · 50 HOURS · INTERMEDIATE · SCALE 1:4
START CANVAS

A comprehensive learning path covering fundamental and advanced data structures and algorithms. By the end, you will be able to analyze algorithmic complexity, implement core data structures from scratch, and apply algorithmic paradigms to solve complex problems efficiently.


§ SYLLABUS

§ SECTION 01 · FOUNDATIONS
  1. 01
    Computational Thinking

    Learn to break problems into smaller parts, recognize patterns, and design step-by-step solutions before writing any code.

  2. 02
    Big-O Notation and Complexity Analysis

    Understand how to measure and compare the time and space efficiency of algorithms using asymptotic notation (O, Ω, Θ).

  3. 03
    Recursion and Recurrence Relations

    Master the art of solving problems by having functions call themselves, and learn to analyze recursive algorithms using recurrence relations.

§ SECTION 02 · LINEAR DATA STRUCTURES
  1. 01
    Arrays and Dynamic Arrays

    Understand contiguous memory storage, random access, resizing strategies, and the trade-offs between static and dynamic arrays.

  2. 02
    Linked Lists

    Learn singly and doubly linked lists, pointer manipulation, and when linked structures outperform contiguous ones.

  3. 03
    Stacks

    Understand the LIFO principle, implement stacks using arrays and linked lists, and apply them to parsing, undo systems, and expression evaluation.

  4. 04
    Queues and Deques

    Learn FIFO queues, double-ended queues, and circular buffers, and see how they model real-world waiting and scheduling problems.

§ SECTION 03 · SORTING AND SEARCHING
  1. 01
    Elementary Sorting Algorithms

    Implement and analyze bubble sort, selection sort, and insertion sort to build intuition for sorting mechanics and best/worst-case behavior.

  2. 02
    Efficient Sorting: Merge Sort and Quick Sort

    Master divide-and-conquer sorting algorithms, understand their O(n log n) performance, and learn how pivot selection affects quicksort.

  3. 03
    Non-Comparison Sorting

    Explore counting sort, radix sort, and bucket sort — algorithms that beat the O(n log n) lower bound by exploiting data properties.

  4. 04
    Binary Search and Its Variants

    Learn to halve your search space efficiently, and apply binary search to sorted arrays, answer spaces, and monotonic functions.

§ SECTION 04 · HASHING
  1. 01
    Hash Tables and Hash Functions

    Understand how hash functions map keys to indices, and learn to build hash tables with O(1) average-case lookups.

  2. 02
    Collision Resolution Strategies

    Compare chaining vs. open addressing (linear probing, quadratic probing, double hashing) and understand load factors and rehashing.

§ SECTION 05 · TREES
  1. 01
    Binary Trees and Traversals

    Learn tree terminology (root, leaf, height, depth), implement binary trees, and master in-order, pre-order, post-order, and level-order traversals.

  2. 02
    Binary Search Trees

    Understand how BSTs maintain sorted order, implement insertion, deletion, and search, and analyze their performance characteristics.

  3. 03
    Balanced Trees (AVL and Red-Black)

    Learn why unbalanced BSTs degrade to O(n) and how self-balancing trees guarantee O(log n) operations through rotations.

  4. 04
    Heaps and Priority Queues

    Build min-heaps and max-heaps using arrays, implement heap sort, and use priority queues for scheduling and greedy algorithms.

  5. 05
    Tries (Prefix Trees)

    Implement trie data structures for efficient string storage and retrieval, supporting autocomplete and dictionary lookups.

§ SECTION 06 · GRAPHS
  1. 01
    Graph Representations

    Understand adjacency matrices, adjacency lists, and edge lists, and learn when each representation is most appropriate.

  2. 02
    BFS and DFS

    Master breadth-first and depth-first search, understand their properties, and apply them to connectivity, cycle detection, and topological sorting.

  3. 03
    Shortest Path Algorithms

    Implement Dijkstra's, Bellman-Ford, and Floyd-Warshall algorithms and understand when to use each based on graph properties.

  4. 04
    Minimum Spanning Trees

    Learn Kruskal's and Prim's algorithms for finding minimum-cost spanning trees, and understand the role of the Union-Find data structure.

  5. 05
    Union-Find (Disjoint Set Union)

    Implement the Union-Find structure with path compression and union by rank for near-constant-time connectivity queries.

§ SECTION 07 · ALGORITHM DESIGN PARADIGMS
  1. 01
    Greedy Algorithms

    Learn the greedy choice property and optimal substructure, and apply greedy strategies to interval scheduling, Huffman coding, and coin change.

  2. 02
    Divide and Conquer

    Understand how to split problems into independent subproblems, solve them recursively, and combine results — beyond just sorting.

  3. 03
    Dynamic Programming

    Master memoization and tabulation to solve overlapping-subproblem problems like knapsack, longest common subsequence, and edit distance.

  4. 04
    Backtracking

    Learn to systematically explore solution spaces by building candidates incrementally and abandoning paths that cannot lead to valid solutions.

§ SECTION 08 · ADVANCED TOPICS
  1. 01
    String Matching Algorithms

    Explore KMP, Rabin-Karp, and other pattern matching algorithms that find substrings faster than brute force.

  2. 02
    Amortized Analysis

    Understand how to analyze the average cost of operations over a sequence, even when individual operations vary widely in cost.

  3. 03
    NP-Completeness and Intractability

    Learn what makes problems computationally hard, understand P vs NP, and recognize NP-complete problems to avoid futile optimization attempts.