I know, I know, Java, C++, .NET all have these already. I think that once you've written these on your own, it sinks in better. Knowing how they tick makes it easier to make informed choices when selecting the right algorithm from the standard libraries.