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