some algorithm and data structure practice