Python: структуры данных
Освойте структуры данных на прикладных задачах: стеки и очереди на deque, хеш-индексы и группировки на dict/Counter, приоритетные очереди на heapq, и свои деревья и графы как функции над dict. Без сквозного проекта — каждая задача самостоятельна.
Что тебя ждёт в этом пути
Что ты построишь
25 решений на Python в 5 паках, без сквозного проекта. Начнёшь со стека для Backspace и очереди печати на deque, пройдёшь через частоты тегов и обратный индекс на dict, streaming-медиану на двух heap, полный размер вложенной папки рекурсией, и закончишь топологической сортировкой пакетов с fail-closed на цикле. Пак «Стеки и очереди» бесплатный, «Хеш-индексы», «Приоритетный порядок», «Деревья» и «Графы» премиум. Деревья и графы здесь не отдельный тип, а функции над словарём: свою структуру писать не придётся.
Для кого
Для тех, кто знает базовый Python и хочет закрыть пробел в структурах данных перед алгоритмическим собеседованием или архитектурной задачей. Уровень пути medium: пригодится опыт с функциями и словарями, но глубокое ООП не требуется. BFS, DFS и heapq объясняются на прикладных примерах, а не абстрактно.
Что нужно знать до старта
- Уметь писать функции, циклы и условия на Python
- Работать со списками, кортежами, множествами и словарями
Чему научишься
- Использовать deque для стека и очереди вместо list, где вставка в начало дорогая
- Строить хеш-индексы и группировки на dict и Counter с сохранением порядка появления
- Работать с heapq.nlargest, nsmallest и merge вместо ручной сортировки всего набора
- Держать текущую медиану потока на паре heap без пересчёта по всем данным
- Обходить дерево в глубину и в ширину, с восстановлением пути и без
- Находить цикл в графе трёхцветным DFS и строить топологический порядок по Кану
- Выбирать между стеком, очередью, кучей и хеш-таблицей по форме задачи, а не по привычке
Задачи пути — 5 модулей, 25 задач
Каждый модуль — навык. Решаешь задачи по порядку, и к финалу из них собирается рабочий результат.
Готов начать этот путь?
Зарегистрируйся — откроем путь прямо на первой задаче. Без установки и настройки, всё в браузере.