Notes of data structures and C++ concepts, along with guides for the tools you'll need in this course

Structure that can map keys to values

By Siping Meng

An algorithm for finding the shortest paths between nodes in a graph.

Trees that contain every nodes in a graph and has the minimum weight.

By Jenny Chen

Trees for points in k dimension.

An efficient way to store and query information about set membership.

By Eddie Huang

Tree structures that allow you to quickly both store elements and query the most important element

Self-balancing trees that can have large branching factor.

By Adrian Clark

Self-balancing binary search trees that allow you to store and query data in logarithmic time.

A two-child tree that can be searched by moving left or right.

By Tamara Nelson-Fromm

BFS and DFS are two simple but useful graph traversal algorithms.

By Xin Tong, Zhenyi Tang

Structures for storing and querying elements in particular linear orders.

By Jenny Chen, Eddie Huang

A memory structure that gives a linear order to the dataset.

An abstraction that makes it easy to traverse arbitrary data structures.

By Nathan Walters

A C++ feature that allows functions and classes to be defined over generic types

A core principle of object-oriented design that allows new objects to take on properties of existing objects.

A detailed explanation of stack and heap memory.

By Jenny Chen, Ruohao Guo

Templates that define the behavior of objects

Catch is an open-source C++ testing framework that's used to test your labs and MPs.

By Anonymous

Go above and beyond print statements with gdb, a powerful debugger for C++.

gdb

Find cases of memory mismanagement with Valgrind.

Instructions for how to work on CS 225 assignments on your own machine.

By Tamara Nelson-Fromm, Jenny Chen, Justin Hu, Brad Solomon, G Carl Evans