A study unit for data structures and algorithms
Failed to load latest commit information.
.challenge-list Add challenge-list Dec 29, 2015
.gitignore Add DS_Store to gitignore Aug 26, 2015
README.md additional challenge re-ordering Feb 23, 2016


Data Structures and Algorithms

In this unit you will learn about and implement several Abstract Data Structures. You will analyze their characteristics, and their pros and cons by determining the Big-O complexity of their operations.

Your capstone project will require you to leverage your new found knowledge to produce a maze solver and pathfinding AI.

You will:

  • Understand and implement a series of classic data structures in Ruby
  • Learn fundamental data structures from an abstract perspective, so that you can discuss them in a language-agnostic manner
  • Learn the strengths of weaknesses of various data structures in order to make informed choices
  • Apply your knowledge of data structures to produce classic algorithms


Challenges should be done in order, many of them build upon each other. You should research each data structure on your own before implementing them except for Fixed Arrays. A "Fixed Array" is not a data structure per se, but we need to implement one in Ruby to build the others.

In addition to familiarizing you with classic data structures, each data structure has a set of required, standard operations. Implementing these operations will provide practice with classic algorithms.


Once you finish the challenges, return to any stretches you haven't completed and get to work. Many of the stretches represent the kinds of the problems you might see in a heavily technical interview.

Data Structures:

  1. Fixed Arrays
  2. Array Lists
  3. Linked Lists
  4. Stacks
  5. Queues
  6. Trees
  7. Graphs
  8. Maps
  9. Sets
  10. Hashes

Recommended Stretch: