Классические структуры данных есть везде. Любой, кто писал на C++, сталкивался с vector и unordered_map, предпочитающие Java знают ArrayList и HashMap как свои пять пальцев, а адепты Python не могут пройти мимо list и dict. Это базовые кирпичики, которые есть в любой программе. То же касается и алгоритмов: сортировка в представлении не нуждается, бинарный поиск незаменим всегда, когда в упорядоченном массиве данных нужно что-то найти, а графы появляются в областях от конвейерной обработки мультимедийных данных до менеджмента установленных пакетов. Понимание устройства алгоритмов и структур данных позволяет заглянуть под капот современных программ и понять, что у них внутри.