Algorithms and Data Structures in Ruby