Data Structures and Algorithm