finish the data_structuer_3 function