0Pricing
Competitive Programming Academy · Ders

Kuyruklar ve collections.deque

Her iki uçtan hızlıca ekleyin ve çıkarın.

Kuyruklar ve collections.deque, CoddyKit'te ücretsiz bir Competitive Programming Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Competitive Programming Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Competitive Programming Academy kursu toplamda 4 dersten oluşur.

İlk Giren, İlk Çıkar

Kuyruk, bir dükkândaki sıra gibi, öğeleri geliş sırasına göre işler. İlk giren, ilk çıkar.

Neden Liste Kullanılmamalı

Bir liste ön taraftan öğe çıkarabilir; ancak pop(0) O(n) sürer, çünkü diğer her öğe sola kaydırılır. Bu, büyük girdiler için fazla yavaştır.

q = []
q.pop(0)  # O(n), avoid this

collections.deque ile Tanışın

Çift uçlu kuyruk, collections içindeki her iki uçtan da O(1) zamanda ekleme ve çıkarma yapabilen bir kuyruktur. Yarışmalarda başvuracağınız temel yapıdır.

from collections import deque
q = deque()

Arkaya Ekleyin

Yeni öğeleri tıpkı bir listede olduğu gibi append ile sağ uca ekleyin. Burası kuyruğun arka tarafıdır.

q.append(1)
q.append(2)

Önden Çıkarın

En eski öğeyi sol uçtan popleft ile çıkarın. Bu işlem sabit zamanda çalışır ve gerçek FIFO davranışını sağlar.

first = q.popleft()  # returns 1

Her İki Uç da Açık

Çift uçlu kuyruk appendleft ve sağdan pop işlemlerini de destekler. Bu esneklik, tek bir yapının hem yığın hem de kuyruk gibi davranmasını sağlar.

q.appendleft(0)
last = q.pop()

Çıkarmadan Önce Kontrol Edin

Boş bir çift uçlu kuyruktan çıkarma yapmak hata oluşturur; bu nedenle gezinmelerinizi güvenli tutmak için döngülerde while q kontrolünü kullanın.

while q:
    x = q.popleft()

Kuyruklar BFS'yi Güçlendirir

Yarışmalardaki en yaygın kullanım BFS'dir. Bir başlangıç düğümünü kuyruğa eklersiniz; sonra ön taraftan sürekli çıkarıp komşularını kuyruğa eklersiniz.

Küçük Bir BFS İskeleti

Bu döngü düğümleri katman katman ziyaret eder. Her komşu eklenir ve daha sonra geliş sırasına göre işlenir.

while q:
    node = q.popleft()
    for nb in graph[node]:
        q.append(nb)

Çift Uçlu Kuyruğun Boyutunu Sınırlandırın

Maksimum uzunluk belirtmek, çift uçlu kuyruk dolduğunda en eski öğeyi atmasını sağlar; bu, kayan pencereler ve yakın geçmiş takibi için idealdir.

window = deque(maxlen=3)

Tek Yapı, Birçok Rol

Çift uçlu kuyruğun her iki uçta da hızlı olduğunu unutmayın; bu nedenle bir kuyruğa, yığına veya kayan arabelleğe ihtiyaç duyduğunuzda ona başvurun.

Hızlı Kontrol

Bir kuyruktan önden hızlıca öğe çıkarmanız gerekiyor. Doğru seçim hangisidir?

Özet: collections.deque Hızlı Kuyruktur

collections.deque ile tanıştınız: O(1) FIFO için append ve popleft, her iki ucu kullanabilme ve pencereler için maksimum uzunluk. BFS'nin temelini oluşturur. 🎯

Sıkça Sorulan Sorular

“Kuyruklar ve collections.deque” dersi ücretsiz mi?

Evet — “Kuyruklar ve collections.deque” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Competitive Programming Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Competitive Programming Academy kursu toplamda 4 dersten oluşur.

“Kuyruklar ve collections.deque” dersinde ne öğreneceğim?

Her iki uçtan hızlıca ekleyin ve çıkarın. Competitive Programming Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Competitive Programming Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Competitive Programming Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“Kuyruklar ve collections.deque” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Competitive Programming Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Competitive Programming Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Eşleşen Köşeli Ayraçlar için Yığınlar
  2. Tekdüze Yığın: Sonraki Büyük Öğe
  3. Kuyruklar ve collections.deque
  4. Deque ile Kayan Pencere Maksimumu
← Competitive Programming Academy Sayfasına Dön