I'm about to finish up my CS degree and I couldn't implement most algorithms and data structures without looking them up. I know nothing about compilers. Never taken such a course.
Compilers are a lot of fun; I did compilers in grad school. I regret not taking more EE courses. I would expect we all think about the classes we wanted to take but didn't. :-/
Except for perhaps the most trivial ones, and ones that exist in many variations, you shouldn't implement algorithms and data structures without looking them up. I would add, without looking them up from more than one source.