Деревья и графы описывают связи между объектами.
Дерево — иерархическая структура: один корень, у каждого узла есть потомки. Так устроены файловая система (папки и подпапки), DOM веб-страницы, дерево комментариев. Частый случай — бинарное дерево поиска, где у узла не больше двух потомков и слева хранятся меньшие значения, справа большие; это даёт поиск за O(log n).
Граф — узлы (вершины), соединённые рёбрами, причём связи произвольные, в том числе циклические. Графами моделируют то, что естественно «соединено»: социальные сети (люди — дружбы), карты дорог (города — пути), интернет (страницы — ссылки).
Деревья и графы обходят двумя основными способами: • в глубину (DFS) — идём по ветке до конца, потом возвращаемся; часто реализуют рекурсией или стеком; • в ширину (BFS) — обходим уровень за уровнем; реализуют очередью. BFS находит кратчайший путь в невзвешенном графе.
Это уже продвинутые темы — но теперь вы знаете карту дальнейшего пути в алгоритмах.