"Структуры данных и алгоритмы Java", 2 издание - Роберт Лафоре
Либо "Алгоритмы на Java" Седжвик, Уэйн как предложили выше.
Лафоре, на мой взгляд читается полегче (многие вещи объясняются буквально на пальцах, множество иллюстраций и т.п.).
Кстати, у Седжвика, Уэйна по их книге есть
курс по на Coursera.