Objectives - Binary search trees Array - Same type for each element - Size is fixed when created. - Random access (get to any element in one time step) Linked lists - Same type for each element. - Size is dynamic; you can add/remove/sort/reorder - Sequential access (must go through nodes in order) Struct / Union - Different types for each field (union stores only one of the fields) - Size is fixed when type is defined - Random access Binary search trees - Same type for each element. - Size is dynamic; you can add/remove/sort/reorder - Access in logarithmic