# Queue — डेटा स्ट्रक्चर और एल्गोरिदम

Source: https://www.geekswithgeeks.com/hi/dsa/queue

> First-In-First-Out: पीछे enqueue, आगे dequeue।

## FIFO

सबसे पुराना तत्व पहले जाता है। दोनों सिरे `O(1)` रखने के लिए ring buffer या doubly linked list उपयोग करें। `pop(0)` वाला सादा array `O(n)` है — `collections.deque` उपयोग करें।

## चेकआउट कतार

आप पीछे से जुड़ते हैं; जो सबसे ज़्यादा देर रुका, अगला उसी की बारी। कोई घुसपैठ नहीं।

## queue के रूप में deque

`deque` दोनों सिरों पर O(1) देता है और stack या double-ended queue दोनों का काम करता है।

```python
from collections import deque
q = deque()
q.append(1); q.append(2); q.append(3)
q.popleft()   # -> 1  (FIFO)
q[0]          # peek front -> 2
```

## यह कहाँ छिपा है

BFS traversal, task/print scheduling, request buffering, और producer–consumer pipeline। Deque sliding-window-maximum भी चलाता है।
