Challenging algorithms and data structures every programmer should try – Austin Z. Henley