@shmVirus

Data Structures


A program that chooses the wrong data structure will be slow, complex, or both. This course covers the canonical structures — arrays, linked lists, stacks, queues, trees, hash tables, and graphs — with attention to both implementation and the trade-offs that guide selection.

Outcomes

  • Implement arrays, linked lists, stacks, queues, trees, and hash tables from scratch
  • 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
    Arrays and Linked Lists Contiguous vs. pointer-based storage: how memory layout determines every trade-off in access speed, insertion cost, and cache behaviour.
  2. 02
    Stacks and Queues LIFO and FIFO abstractions, their implementations, and where each fits naturally.
  3. 03
    Trees Binary trees, BSTs, traversals, deletion, AVL self-balancing, heaps — hierarchical data and the algorithms that keep it efficiently ordered.
  4. 04
    Graphs Vertices, edges, adjacency representations, DFS, BFS, cycle detection, topological sort, and shortest paths — the data structures behind every network problem.
  5. 05
    Hash Tables Hash functions, collision resolution by chaining and open addressing, load factor, rehashing, and the engineering decisions behind O(1) average-case lookup.