Lists
Array (as in Python):
- stored as unified piece of memory
- access O(1) to any element
- high cost to add element into the middle of array
Linked List (as in Haskell):
- elements are stored all across the memory (every element stores link to next element)
- access O(n) to any element
- low cost to add element into the middle of array
Dictionaries
As Data Structure:
- Hash Table
- Hash Map
- Hash Set
As ADT (abstract data type):
- Associative Array
- Map
- Symbol Table
- Dictionary