Data Structures and Algorithm Analysis