Where are some good resources for learning the details and practical uses of the various algorithms and data structures one should know? Even if I never end up using the information in my line of work, I'm interested in them just out of curiosity (and they probably wouldn't hurt for job interviews, either).