Understanding Linear Data Structures