text: # Stack (LIFO)
  ## Arrays -> cache locality, faster access, can keep adding
  ## Linked Lists -> extra memory to hold pointer, but more dynamic memory
  
  # Queues (FIFO)
  ## Arrays -> O(n), if you remove item from head, you need to shift all following item
  ## Linked Lists -> O(1), easy to remove head
  