Python Algorithms and Data Structures