Obojsmerná fronta (double-ended queue, čiže deque) je kombináciou zásobníka a fronty. Môžeme doň vkladať aj odoberať z oboch strán, a tiež sa pozerať na začiatok aj koniec. Ako abstraktná dátová štruktúra podporuje nasledovné operácie:
Pamäťová zložitosť celej štruktúry je $O(n)$. Časové zložitosti jednotlivých operácií sú rovnaké -- $O(1)$.
Metóda appendleft() pridá prvok na začiatok deque.
from collections import deque
deq = deque()
deq.appendleft(1)
deq.appendleft(2)
# deq aktuálne obsahuje [2, 1]
Metóda append() pridá prvok na koniec deque.
deq.append(3)
# deq obsahuje [2, 1, 3]
Metóda popleft() vráti a odstráni prvok zo začiatku deque.
deq.popleft() # dostaneme 2
Metóda pop() odstráni prvok z konca deque.
deq.pop() # dostaneme 3
Prístup k prvku na začiatku deque môžeme spraviť cez index 0.
deq[0]
Prístup k poslednému prvku deque môžeme spraviť cez index -1.
deq[-1]
Pred prístupom k indexu 0 alebo -1 je však dobré vždy skontrolovať, či deque
nie je prázdna. Ak by bola prázdna, viedlo by to k chybe IndexError.