CS515 Data structure and algorithm