Алгоритмы и структуры данных на C++
От основ до продвинутых техник с примерами на C++17/20
Краткое содержимое:
Книга «Алгоритмы и структуры данных на C++» — это полноценное практическое руководство, которое охватывает все ключевые темы, необходимые для уверенного владения языком C++ на уровне middle-разработчика и выше. Материал изложен с учётом современных стандартов C++17 и C++20, что делает книгу актуальной для профессиональной разработки.
О чём эта книга
Вы последовательно изучите фундаментальные и продвинутые структуры данных:
- Линейные структуры: динамические массивы (std::vector), связные списки (односвязные, двусвязные), стеки и очереди, включая std::queue и std::stack.
- Деревья и графы: бинарные деревья поиска, AVL-деревья, красно-чёрные деревья, обходы (BFS, DFS), алгоритмы Дейкстры, Беллмана-Форда, Флойда-Уоршелла.
- Хеш-таблицы: реализация, разрешение коллизий, std::unordered_map и std::unordered_set.
- Алгоритмы сортировки и поиска: быстрая, слиянием, пирамидальная, бинарный поиск, интерполяционный поиск.
- Динамическое программирование: задача о рюкзаке, наибольшая общая подпоследовательность, расстояние Левенштейна.
- Современные возможности C++: умные указатели, move-семантика, лямбда-выражения, корутины (coroutines), ranges.
Для кого эта книга
- Начинающих C++ разработчиков, которые хотят систематизировать знания об алгоритмах.
- Студентов технических специальностей, готовящихся к собеседованиям или олимпиадам по программированию.
- Практикующих программистов, желающих освоить продвинутые техники оптимизации кода и работы с памятью.
Что вы узнаете
- Как выбирать оптимальную структуру данных под конкретную задачу (Big O-нотация, амортизационный анализ).
- Как реализовать собственные контейнеры с нуля и как правильно использовать STL.
- Как писать эффективный, безопасный и читаемый код с учётом особенностей C++ (RAII, исключения, шаблоны).
- Как решать типовые задачи на собеседованиях: от разворота списка до поиска кратчайшего пути в графе.
Каждая глава содержит примеры кода, которые можно сразу запустить, и практические задания с разбором решений. Книга станет надёжным помощником как для самообразования, так и для подготовки к техническим интервью.
Рекомендаций
Стандартная библиотека Python 3: справочник с примерами
Производительность Go (Golang) приложений: Оптимизация кода и систем
Обработка естественного языка на Python
Python Geospatial Development (Разработка геопространственных приложений на Python)
JavaFX. Разработка насыщенных клиентских приложений на платформе NetBeans
Rust High Performance