Queue

A data structure with limited location for insertion and deletion, as with stacks.

F.I.F.O ( First In First Out)

Head & Tail

  1. Head

    : the first (the oldest) element in the queue

  2. Tail

    : the last element (the newest) in element in the queue

Enqueue & Dequeue

  1. Enqueue

    : add an element to the tail

  2. Dequeue

    : remove the head element

  3. Peek

    : look at the head element, but not removing it

Deque

: a queue that goes both ways

-> you can enqueue & dequeue from either end

-> kind of a generalized version of both stacks & queues since you could represent either of them with it!

Implementation

from collections import deque

q = deque()
q.append([1,2,3])
q.append([4,5,6])

# Head ์‚ญ์ œ ( ๋ฆฌ์ŠคํŠธ์—์„œ pop(0) ํ•˜๋Š” ๊ฒƒ ๋ณด๋‹ค, deque ๋ฅผ import ํ•ด์„œ popleft ๋ฅผ ์“ฐ๋Š”๊ฒŒ ๋น ๋ฅด๋‹ค.)
q.popleft()

print(q)
=> [4,5,6]

Priority Queue

  • assign each element a numerical priority when you insert it into the queue

  • remove the element with the highest priority when you dequeue

-> if the elements have the same priority, the oldest element is the one that gets dequeue first

Last updated

Was this helpful?