Generic Data Structures and Algorithms in Go: An Applied Approach Using Concurrency, Genericity and Heuristics
Эта книга представляет собой практическое руководство по реализации обобщённых (generic) структур данных и алгоритмов на языке программирования Go. Автор фокусируется на применении современных возможностей Go, включая дженерики (введённые в версии 1.18), конкурентность (горутины и каналы) и эвристические подходы для оптимизации производительности.
Основное внимание уделяется проектированию и реализации фундаментальных структур данных — таких как списки, стеки, очереди, деревья (бинарные, красно-чёрные, AVL), хеш-таблицы, графы — с использованием обобщённых типов. Это позволяет создавать гибкие, типобезопасные и повторно используемые компоненты, работающие с любыми типами данных.
Особенностью книги является интеграция конкурентных моделей Go (параллелизма) в классические алгоритмы. Рассматриваются параллельные версии алгоритмов сортировки, поиска, обхода графов и других вычислительных задач, что позволяет эффективно использовать многоядерные процессоры.
Книга также охватывает эвристические методы (жадные алгоритмы, локальный поиск, алгоритмы с возвратом) для решения NP-трудных задач, демонстрируя их реализацию на Go. Текст сопровождается многочисленными примерами кода, доступными на GitHub, и пояснениями по выбору оптимальных структур данных для различных сценариев.









