add heap structure and move disjoint_set into structure.py