sort the given subtrees (of type DGParentedTree) based on their
        linear position in this RSTTree. If two subtrees have the same
        linear position in the RSTTree (i.e. one is a child of the other),
        they are sorted by their height in reverse order (i.e. the child
        appears before its parent).

def sort_subtrees(self, *subtrees):
        """sort the given subtrees (of type DGParentedTree) based on their
        linear position in this RSTTree. If two subtrees have the same
        linear position in the RSTTree (i.e. one is a child of the other),
        they are sorted by their height in reverse order (i.e. the child
        appears before its parent).
        """
        subtrees_desc_height = sorted(subtrees,
                                      key=methodcaller('node_height', self),
                                      reverse=True)
        return sorted(subtrees_desc_height,
                      key=methodcaller('get_position', self))