data structure approaches