data structure implemented by xiaolongwu