> 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](/files/90e2XVWx1SeePbRMcMfh)

## Bag

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

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