algorithms and data structures cheat sheet