I just finished learning the basics on data structures and algorithms using Python and C, completing some of the exercises from the book I read. I feel that it is necessary to implement some of these data structures and algorithms to enhance my understanding about the material that I just learned, such as the red-black tree and priority queue.

Are there any good websites with material for me to use when practicing?

  • There are tons of questions like this one already on Software Engineering(programmers.stackexchange.org). Look for the self-improvement and learning tags.
    – blubb
    Aug 31, 2011 at 11:32
  • @Simon, thanks for your advice. I will go and check it out.
    – Alcott
    Aug 31, 2011 at 11:34

3 Answers 3


Get an account on http://topcoder.com. They run competitions among programmers to tackle problems involving data structures and algorithms. You'll be competing on correctness, runtime, and speed of implementation. They also have some very good tutorials.

  • 1
    Jay Elston mentioned the Cormen book on algorithms which is excellent. Another good book is Programming Interviews Exposed by Mongan, Suojanen, and Giguere. Google recommends this book for people coming in to interview (or at least they did, not too long ago).
    – Will Ware
    Aug 31, 2011 at 20:06

Start with a search.

Search for the words "Code Kata"

Read those web sites for examples of things you can write that will require data structures and algorithms.


Pick up a copy of Introduction to Algorithms. Implement some of the algorithms.

Here is a list that will cover several interesting uses for data structures --

  • linked lists
  • binary search tree
  • hash table
  • Dijkstra's shortest path
  • KMP string matching

Not the answer you're looking for? Browse other questions tagged or ask your own question.