Data Structures and Their Algorithms