That's funny, I've had to implement a queue, linked list (singly and doubly), heap and binary tree, and other custom data structures that use concepts from all of these in the past month. Depends on what you're working on. If you're writing an engine of some sort, you need to know these things, and often importing third party implementations is neither desired nor worth it. If you're writing business logic, then of course, import some third party lib and do things the quick way.