add self_adjusting_list.c