Others already recommended great books, but I think it might be helpful to clarify one thing. I'm extremely pleased with the breadth and depth of my undergrad education; I'd never encountered ropes, bloom lists, or skip lists. These are all concepts for very specific subsets of problems, so if you were just worried that you hadn't heard of them, don't be. If on the other hand you looked up their implementations and still didn't understand how they worked and couldn't compare them with more mundane structures then most definitely pursue the resources listed in this topic.