# Stacks and Queues

## Fundemental data types

* Value: collection of objects.
* Operations: insert, remove, iterate, test if empty.
* Intent is clear when we insert.
* Which item do we remove?
  * **Stack** : Last In First Out - **LIFO**
  * **Queue**: First in First Out - **FIFO**

![STACK, QUEUE  - INSERT , REMOVE OPERATIONS](https://1133441777-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MP3gpNOfmHBf90k26iY%2Fuploads%2Fgit-blob-55d63578c3a52385a5b287c51c4c76ca7867f36a%2Fimage%20\(19\).png?alt=media)

## Bag

Adding items to a collection and iterating **( Order does not matter )**

> Implementation is similar to stack / queue without pop / dequeue respectively
