Skip to main content
@shmVirus

Data Structures

Arrays, linked lists, stacks, queues, graphs, trees, heaps, and hash tables — choosing and implementing the right structure for the problem.


A program that chooses the wrong data structure will be slow, complex, or both. This course moves from arrays, linked lists, stacks, and queues into graph representation and traversal, then continues with trees, heaps, and hash tables. Each structure is implemented directly before its trade-offs and applications are compared.

Outcomes

  • Implement arrays, linked lists, stacks, queues, graphs, trees, heaps, and hash tables from scratch
  • Traverse graphs with breadth-first and depth-first search using queues, recursion, and stacks
  • Analyse time and space complexity for each structure
  • Select the right data structure given a problem's access and mutation patterns
  • Compare pointer-based and contiguous-memory trade-offs with measured benchmarks

Outline

Start →
  1. 01
    ArraysOne-dimensional and two-dimensional arrays, memory layout, traversal, insertion, deletion, and the cost of shifting data.
  2. 02
    Linked ListsSingly, doubly, and circular linked lists; function-based C implementation, traversal, insertion, deletion, reversal, and pointer safety.
  3. 03
    StacksLIFO storage, beginner-friendly array and linked-list stack implementations, overflow and underflow handling, and common stack applications.
  4. 04
    QueuesFIFO storage, beginner-friendly array and linked-list queue implementations, circular queues, deques, and BFS-style processing.
  5. 05
    GraphsGraph terminology, adjacency matrices, linked adjacency lists, BFS with a queue, and DFS with recursion or a stack.
  6. 06
    Binary TreesTree terminology, binary-tree node representation, insertion, and depth-first and breadth-first traversal orders.
  7. 07
    Binary Search TreesBST ordering, insertion, search, deletion, traversal, degeneration, and the motivation for balanced search trees.
  8. 08
    HeapsArray-backed binary heaps, heapify, insertion, deletion, priority queues, and the structure behind heapsort.
  9. 09
    Hash TablesHash functions, collision resolution by chaining and open addressing, load factor, rehashing, and the engineering decisions behind O(1) average-case lookup.