Michael Loceff's Modules

These modules were originally written by Michael. This is my snapshot from several quarters ago. Just like C++ itself, most of the material is still relevant and provided for easy reference here.

The most recent version of these modules could be found in many places online. I found a copy at our CS Club site, which may be about the same version as mine. These are for your benefit only. I only fix the odd serious typos.

Almost every topic we cover in CS2B can be found in Michael's material. Once you locate what you want, simply bookmark it in your browser. I left the Week numbers in the module headings intact. They are an approximate map to the sequence in which we cover topics in the course. But they are not exactly 1-1. So exercise your good judgement in deciding what to read when.

Happy Hacking,

&

Module 1A - Introduction to Data Structures

Module 1B - Templates and STL

Module 2A - Implementing Vectors From Scratch

Module 2B - Implementing Lists and Sparse Matrices

Module 3A - Time Complexity

Module 3B - Recursion; Log and Exponential Time

Module 4A - The General Tree

Module 4B - Binary Search Trees

Module 5A - AVL Trees

Module 5B - More AVL and Top-Down Splaying

Module 6A - Separate Chaining Hash Tables

Module 6B - Linear and Quadratic Probing

Module 7A - Priority Queues and Bin Heaps

Module 7B - Heap Timing and Heap Sort (Part 1)

Module 8A - Non-NLogN Sorts: Insertion and Shell

Module 8B - NLogN Sorts: Mergesort and Heapsort

Module 9A - Quicksort and Indirect Sorting

Module 9B - STL Survey: Sets, Maps, Priority Queues & More

Module 10A - Graph Theory Basics and a Working Template

Module 10B - Shortest Paths: Dijkstra Implemented

Module 11A - Minimum Spanning Trees: Kruskal Implemented

Module 11B - A Maximum Flow Algorithm

Michael's Very Small Intro to Git and Github