> For the complete documentation index, see [llms.txt](https://blog.sunilgudivada.dev/notebook/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://blog.sunilgudivada.dev/notebook/data-structures-and-algorithms/topics/stacks-and-queues.md).

# 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
