DataStructure and Algorithms in JavaScript