CodeBlanks Logo Icon CodeBlanks

deque

deque ile çift üçlü kuyruğu öğrenirsin.

deque

deque (çift üçlü kuyruk), hem başından hem sonundan hızlı ekleme ve çıkarma yapılabilen bir veri yapısıdır. collections modülünden gelir; listeden farklı olarak baştan ekleme/çıkarma işlemi O(1) sürede çalışır.

Örnek: d = deque([1, 2, 3]). d.appendleft(0) ile başa, d.append(4) ile sona eklersin. d.popleft() başdan, d.pop() sondan çıkarır. Listeyle aynı işlem O(n) sürer; deque bu yüzden kuyruk işlerinde tercih edilir.

Listeden farkı

Bir listede insert(0, x) ya da pop(0) çağrısı tüm öğeleri kaydırır; bu yüzden O(n) sürede çalışır. deque ise çift bağlı liste yapısıyla bu işlemleri O(1) sürede yapar.

Kuyruk (FIFO) ya da yığın (LIFO) uygulamalarında deque performans açısından listeye göre çok daha verimlidir. maxlen argümanı verirsen, deque belirli bir uzunluğu aşınca eski öğeleri otomatik atar; bu da kayan pencere (sliding window) işlerinde kullanışlıdır.

Uygulama deque başa ekle

from collections import deque ile başla. d = deque([1, 2, 3]) ile bir deque oluştur. d.appendleft(0) ile başa 0 ekle. Sonra print(list(d)) ile deque'yi liste olarak yazdır.

Başlangıç kodu

main.py
# deque başa 0 ekle

Örnek çözüm

main.py
# deque başa 0 ekle
from collections import deque

d = deque([1, 2, 3])
d.appendleft(0)
print(list(d))

Beklenen çıktı

[0, 1, 2, 3]

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 deque metotlarını eşleştir

Kavram Anlamı
append Sona ekler
appendleft Başa ekler
pop Sondan çıkarır
popleft Baştan çıkarır

2 deque'de appendleft ne zaman tercih edilir?

  • Baştan hızlı ekleme gerektiğinde Doğru cevap
  • Yalnızca sondan çıkarmada
  • Yalnızca arama işlemlerinde
  • Sadece sıralı erişimde

Açıklama: appendleft başa O(1) sürede ekler; listeyle zor olur.

3 appendleft çağrısı

Soru
from collections import deque

d = deque([1, 2, 3])
d.____(0)
print(list(d))
Cevap
from collections import deque

d = deque([1, 2, 3])
d.appendleft(0)
print(list(d))

Açıklama: appendleft başa 0 ekler.

Orta seviye bölümündeki tüm dersler