Graphs, BFS, DFS, and dependency order
By the end of today you can model a problem as nodes and edges, choose breadth-first or depth-first for a reason rather than a habit, and produce a valid order for things that depend on each other.
YesterdayOn Day 20 you learned a tree, which is a graph that agreed not to have cycles. Today you drop that promise and pick up a visited set to survive it.
TomorrowTomorrow you turn the whole phase into one decision table for choosing a structure.
Why this matters
Graphs are what you reach for the moment relationships matter more than containment. Package managers resolving dependencies, social feeds, routing, build systems, permission inheritance and the import cycle your interpreter just complained about are all the same shape, and once you see it you stop writing bespoke code for each one.
- Graphs
- Adjacency lists
- Breadth-first search
- Depth-first search
- Cycles and the visited set
- Dependency order
Learn it
70 minCopy this into Claude or ChatGPT. It quizzes you before it explains anything, which is deliberate. The resources under it are how you check what it told you.
Today's Master Prompt
Free · sign inA prompt written for this day alone: your level, the exact scope, what to leave out, and an instruction to quiz you before it explains anything. Paste it into Claude or ChatGPT and it teaches you today's material.
Check it against something that is not a model
An assistant can be fluent and wrong, and on a topic you met today you will not catch it. These cover the same ground and were made by people who do this for a living, so they are what you hold the explanation up against. They are other people's work and we only link to them, so judge them for yourself.
6 hand-picked resources
Free · sign inVideos, official docs and articles covering the same ground, each opened and annotated by hand. They are what you check the assistant against on a day you cannot yet catch it being wrong.
Build it
45 minBuild a package dependency graph as a dict of lists, with at least eight packages and one cycle. Write BFS and DFS over it, both returning visit order. Add a visited set and show, by running it once without, what happens on the cycle. Then write a topological sort that returns a valid install order, and make it report the cycle instead of looping forever when no order exists.
Recall it
20 minAnswer out loud, reveal, then mark honestly whether you had it. That score is the only thing on this page you do not get to choose.
5 recall questions
Free · sign inQuestions you answer from memory, then grade yourself against the real answer. The score is carried into the mastery rating below it, so an honest miss cannot quietly become a tick.
Rate it
Completion and mastery are tracked separately. Be honest, because an inflated rating only means the concept resurfaces sooner.
Mastery tracking
Free · sign inRate yourself against five named criteria per concept. Completion and mastery are tracked separately, and anything you rate shakily comes back automatically on a spaced schedule.
Recap
- 01A graph is nodes and edges, and a tree is a graph that promised not to have cycles
- 02An adjacency list is a dict of lists, and it wins on every sparse graph
- 03BFS finds the shortest path on an unweighted graph, DFS just finds a path
- 04The visited set is the difference between a traversal and an infinite loop
- 05Topological sort answers what order can I do these in, and fails exactly when there is a cycle
Your progress
Free · sign inMark days complete, pick up where you left off across devices, and watch completion and mastery diverge. Free, and the account exists only so ninety days of work cannot vanish with a cleared browser.