<Table> Comparison of list data structures <Tr> <Th> </Th> <Th> Linked list </Th> <Th> Array </Th> <Th> Dynamic array </Th> <Th> Balanced tree </Th> <Th> Random access list </Th> <Th> Hashed array tree </Th> </Tr> <Tr> <Td> Indexing </Td> <Td> Θ (n) </Td> <Td> Θ (1) </Td> <Td> Θ (1) </Td> <Td> Θ (log n) </Td> <Td> Θ (log n) </Td> <Td> Θ (1) </Td> </Tr> <Tr> <Td> Insert / delete at beginning </Td> <Td> Θ (1) </Td> <Td> N / A </Td> <Td> Θ (n) </Td> <Td> Θ (log n) </Td> <Td> Θ (1) </Td> <Td> Θ (n) </Td> </Tr> <Tr> <Td> Insert / delete at end </Td> <Td> Θ (1) when last element is known; Θ (n) when last element is unknown </Td> <Td> N / A </Td> <Td> Θ (1) amortized </Td> <Td> Θ (log n) </Td> <Td> Θ (log n) updating </Td> <Td> Θ (1) amortized </Td> </Tr> <Tr> <Td> Insert / delete in middle </Td> <Td> search time + Θ (1) </Td> <Td> N / A </Td> <Td> Θ (n) </Td> <Td> Θ (log n) </Td> <Td> Θ (log n) updating </Td> <Td> Θ (n) </Td> </Tr> <Tr> <Td> Wasted space (average) </Td> <Td> Θ (n) </Td> <Td> 0 </Td> <Td> Θ (n) </Td> <Td> Θ (n) </Td> <Td> Θ (n) </Td> <Td> Θ (√ n) </Td> </Tr> </Table> <Tr> <Th> </Th> <Th> Linked list </Th> <Th> Array </Th> <Th> Dynamic array </Th> <Th> Balanced tree </Th> <Th> Random access list </Th> <Th> Hashed array tree </Th> </Tr> <Tr> <Td> Indexing </Td> <Td> Θ (n) </Td> <Td> Θ (1) </Td> <Td> Θ (1) </Td> <Td> Θ (log n) </Td> <Td> Θ (log n) </Td> <Td> Θ (1) </Td> </Tr> <Tr> <Td> Insert / delete at beginning </Td> <Td> Θ (1) </Td> <Td> N / A </Td> <Td> Θ (n) </Td> <Td> Θ (log n) </Td> <Td> Θ (1) </Td> <Td> Θ (n) </Td> </Tr>

What is data structure why is an array called a data structure