Data Structures and Algorithms in Ruby