The original edition is Aho and Ullman. Later edition has Hopcroft as
That was Aho, Sethi and Ullman. OTOH, Aho, Hopcraft and Ullman wrote
_Data Structures and Algorithms_, which would be a reasonable addition
to the list at hand as well.
Both of these are "classic" books, with about the same stature as The
Art of Computer Programming (which I think probably has more
recommending than reading associated with it).
He can certainly go a bit overboard in places (e.g. see below), but
especially those of us with a grey hair or two (no more than two --
that's my story and I'm sticking to it
) really did study it a lot,
if only because there was a time when serious alternatives hardly
existed.
As long as we're recommending books, I'll add in a few more to the
list:
_C++ FAQs_ by Cline and Lomow (with other contributors nearly beyond
count).
and one that _might_ have been referred to elsethread:
_Structure and Interpretation of Computer Programs_ by Abelson, Sussman
and Sussman. This uses Scheme rather than C++, but every programmer
should learn some variant of Lisp in their life -- even if they only
rarely use it directly.
_Design and Evolution of C++_ by Bjarne Stroustrup. Tells about _why_
the language is the way it is. Definitely not a high priority book for
a beginner, but certainly an interesting read.
_Introduction to Algorithms_ by Cormen, et al.
As an aside, I'd note that only ONE of the algorithm books is really
needed: Knuth OR Cormen et al OR Aho et al. Of the threee, I tend to
recommend Cormen, et al as a reasonable compromise between the other
two. Knuth's chapter on sorting alone is about the length of Aho,
Hopcraft and Ullman's entire book. Cormen has plenty of detail, without
Knuth's 25+ pages of calculus about Euclid's GCD algorithm (for one
example). Don't get me wrong, I'm glad I have TAOCP books and (as I
implied above) I really have studied them quite a lot -- but I suspect
Knuth often tends to confirm many beginners' worst fears.