Data Strutures and Algorithm