2-е изд. — СПб.: Питер, 2013. — 702 c. — (Классика Computers Science). — ISBN: 9785496007405.
Второе издание одной из самых авторитетных книг по программированию посвящено использованию структур данных и алгоритмов. Алгоритмы — это основа программирования, определяющая, каким образом разрабатываемое программное обеспечение будет использовать структуры данных. На чётких и простых программных примерах автор объясняет эту сложную тему, предлагая читателям написать собственные программы и на практике усвоить полученные знания. Рассматриваемые примеры написаны на языке Java, хотя для усвоения материала читателю не обязательно хорошо знать его — достаточно владеть любым языком программирования, например C++. Первая часть книги представляет собой введение в алгоритмизацию и структуры данных, а также содержит изложение основ объектно-ориентированного программирования. Следующие части посвящены различным алгоритмам и структурам данных, рассматриваемым от простого к сложному: сортировка, абстрактные типы данных, связанные списки, рекурсия, древовидные структуры данных, хеширование, пирамиды, графы. Приводятся рекомендации по использованию алгоритмов и выбору той или иной структуры данных в зависимости от поставленной задачи.
Введение.
Общие сведения.
Массивы.
Простая сортировка.
Стеки и очереди.
Связанные списки.
Рекурсия.
Нетривиальная сортировка.
Двоичные деревья.
Красно-чёрные деревья.
Деревья 2-3-4.
Хеш-таблицы.
Пирамиды.
Графы.
Взвешенные графы.
Рекомендации по использованию.
Приложения.
Приложения Workshop и примеры программ.
Литература.
Ответы на вопросы.
Об авторе.
Алфавитный указатель.