⚡ MemoLearning Data Structures and Algorithms I

Arrays, linked lists, stacks, queues, trees, and fundamental algorithms

← Back to Computer Science

Curriculum Overview

15
Total Units
~180
Skills to Master
9
Core Units
6
Advanced Units
1

Algorithm Analysis and Big O

Learn to analyze algorithm efficiency and understand time/space complexity.

  • Time complexity analysis
  • Space complexity analysis
  • Big O, Omega, and Theta notation
  • Best, average, and worst case analysis
  • Asymptotic growth rates
  • Common complexity classes
  • Analyzing loops and recursion
  • Master theorem for recurrences
2

Arrays and Dynamic Arrays

Master the fundamental sequential data structure and its operations.

  • Array fundamentals and indexing
  • Static vs dynamic arrays
  • Array operations (insert, delete, search)
  • Multi-dimensional arrays
  • Dynamic array implementation
  • Resizing strategies
  • Memory layout and cache efficiency
  • Array-based algorithms
3

Linked Lists

Understand pointer-based data structures and dynamic memory allocation.

  • Singly linked lists
  • Doubly linked lists
  • Circular linked lists
  • Node structure and pointers
  • Insertion and deletion operations
  • Traversal algorithms
  • Memory management
  • Linked list vs array comparison
4

Stacks

Learn the Last-In-First-Out (LIFO) data structure and its applications.

  • Stack ADT and operations
  • Array-based stack implementation
  • Linked list-based stack implementation
  • Stack applications
  • Expression evaluation
  • Parentheses matching
  • Function call stack
  • Backtracking algorithms
5

Queues

Master the First-In-First-Out (FIFO) data structure and its variants.

  • Queue ADT and operations
  • Array-based queue implementation
  • Linked list-based queue implementation
  • Circular queues
  • Priority queues
  • Deques (double-ended queues)
  • Queue applications
  • Breadth-first search foundation
6

Recursion

Understand recursive problem-solving and algorithm design.

  • Recursive thinking
  • Base cases and recursive cases
  • Call stack visualization
  • Tail recursion
  • Recursion vs iteration
  • Recursive data structures
  • Divide and conquer paradigm
  • Recursion tree analysis
7

Sorting Algorithms - Basic

Learn fundamental sorting algorithms and their analysis.

  • Bubble sort
  • Selection sort
  • Insertion sort
  • Sorting algorithm analysis
  • Stable vs unstable sorting
  • In-place vs out-of-place sorting
  • Adaptive sorting algorithms
  • Lower bounds for comparison sorting
8

Sorting Algorithms - Advanced

Master efficient divide-and-conquer and specialized sorting algorithms.

  • Merge sort
  • Quick sort
  • Heap sort
  • Counting sort
  • Radix sort
  • Bucket sort
  • Hybrid sorting algorithms
  • Sorting algorithm selection
9

Searching Algorithms

Explore various searching techniques and their optimizations.

  • Linear search
  • Binary search
  • Interpolation search
  • Exponential search
  • Search in rotated arrays
  • Two-pointer technique
  • Search optimization strategies
  • Searching in specific data structures
10

Trees - Fundamentals

Understand hierarchical data structures and tree terminology.

  • Tree terminology and properties
  • Binary trees
  • Tree traversals (preorder, inorder, postorder)
  • Level-order traversal
  • Tree implementation strategies
  • Tree height and depth
  • Complete and full binary trees
  • Tree applications
11

Binary Search Trees

Learn ordered binary trees for efficient searching and sorting.

  • BST property and invariants
  • BST insertion
  • BST deletion
  • BST search operations
  • In-order successor and predecessor
  • BST validation
  • BST performance analysis
  • Degenerate cases and balancing need
12

Heaps and Priority Queues

Master heap data structure and priority queue implementations.

  • Heap property (min-heap, max-heap)
  • Heap representation in arrays
  • Heap insertion (heapify up)
  • Heap deletion (heapify down)
  • Building a heap from array
  • Priority queue ADT
  • Heap sort algorithm
  • Applications of heaps
13

Hash Tables

Understand hash-based data structures for constant-time operations.

  • Hash function design
  • Collision resolution strategies
  • Chaining (separate chaining)
  • Open addressing (linear, quadratic, double hashing)
  • Load factor and rehashing
  • Hash table performance analysis
  • Universal hashing
  • Applications and use cases
14

Graph Basics and Representations

Introduction to graph theory and graph data structure representations.

  • Graph terminology
  • Directed vs undirected graphs
  • Weighted vs unweighted graphs
  • Adjacency matrix representation
  • Adjacency list representation
  • Edge list representation
  • Space and time trade-offs
  • Graph ADT operations
15

Graph Traversal Algorithms

Learn fundamental graph traversal techniques and their applications.

  • Depth-First Search (DFS)
  • Breadth-First Search (BFS)
  • DFS applications (cycle detection, topological sort)
  • BFS applications (shortest path, level-order)
  • Connected components
  • Bipartite graph detection
  • Iterative vs recursive implementations
  • Traversal complexity analysis

Unit 1: Algorithm Analysis and Big O

Learn to analyze algorithm efficiency and understand time/space complexity.

Time Complexity Analysis

Measure how algorithm runtime grows with input size, identify bottlenecks in code.

Space Complexity Analysis

Analyze memory usage patterns, understand auxiliary space vs input space.

Big O Notation

Express upper bounds on algorithm performance, compare algorithms objectively.

Best, Average, Worst Case

Understand different scenarios for algorithm performance and their implications.

Asymptotic Growth

Focus on dominant terms in complexity analysis, ignore constants and lower-order terms.

Common Complexity Classes

Learn O(1), O(log n), O(n), O(n log n), O(n²), O(2ⁿ) and their characteristics.

Loop Analysis

Analyze nested loops, understand how loop structure affects time complexity.

Master Theorem

Solve recurrence relations for divide-and-conquer algorithms systematically.

Unit 2: Arrays and Dynamic Arrays

Master the fundamental sequential data structure and its operations.

Array Fundamentals

Understand contiguous memory layout, zero-based indexing, and constant-time access.

Static vs Dynamic Arrays

Compare fixed-size arrays with resizable arrays, understand trade-offs.

Array Operations

Implement insertion, deletion, and search operations with proper complexity analysis.

Multi-dimensional Arrays

Work with 2D arrays, matrices, and understand row-major vs column-major layout.

Dynamic Array Implementation

Build resizable arrays from scratch, handle memory allocation and deallocation.

Resizing Strategies

Learn doubling strategy, amortized analysis, and when to shrink arrays.

Memory and Cache

Understand spatial locality, cache-friendly algorithms, and memory access patterns.

Array Algorithms

Master two-pointer technique, sliding window, and array manipulation algorithms.

Unit 3: Linked Lists

Understand pointer-based data structures and dynamic memory allocation.

Singly Linked Lists

Build and manipulate one-way linked structures with head pointers.

Doubly Linked Lists

Implement bidirectional links for efficient backward traversal and deletion.

Circular Linked Lists

Create circular structures where the last node points back to the first.

Node Structure

Design node classes with data and pointer fields, understand reference semantics.

Insertion Operations

Insert at beginning, end, and arbitrary positions while maintaining list integrity.

Deletion Operations

Remove nodes safely, handle edge cases, and prevent memory leaks.

Traversal Algorithms

Iterate through lists iteratively and recursively, detect cycles.

Lists vs Arrays

Compare performance characteristics, choose appropriate data structure.

Unit 4: Stacks

Learn the Last-In-First-Out (LIFO) data structure and its applications.

Stack ADT

Understand push, pop, peek, isEmpty operations and LIFO principle.

Array-based Implementation

Implement stacks using arrays with top pointer, handle overflow conditions.