CodeBlanks Logo Icon CodeBlanks

Öncelikli kuyruk nedir?

Her elemanın önceliği olan kuyruk veri yapısını öğrenirsin.

Öncelikli kuyruk nedir?

Öncelikli kuyruk (priority queue), her elemanın bir önceliği olduğu ve en yüksek (veya en düşük) öncelikli elemanın önce çıktığı bir veri yapısıdır.

Sıradan kuyruktan (FIFO) farklı olarak, çıkarma sırası önceliğe bağlıdır. Heap ile uygulanırsa ekleme ve çıkarma O(log n).

Görev zamanlayıcı, Dijkstra algoritması ve Huffman kodlamasında kullanılır.

Heap ile uygulama

Öncelikli kuyruk en verimli biçimde heap ile uygulanır. Min-heap, en düşük öncelikliyi; max-heap, en yüksek öncelikliyi kökte tutar.

Ekleme: heap'e ekle + sift-up, O(log n). Çıkarma: kökü al + son elemanı köke taşı + sift-down, O(log n).

Peek (köke bakma) O(1). Bu, sıralı diziye göre denge sağlar.

Uygulama Peek

peek(arr) yaz. Kökü (en küçük) döndür. print(peek([1, 3, 2, 5, 4])) ile 1 yazdır.

Başlangıç kodu

solution.py
def peek(arr):
    # Kökü döndür

Örnek çözüm

solution.py
def peek(arr):
    # Kökü döndür
    return arr[0]
print(peek([1, 3, 2, 5, 4]))

Beklenen çıktı

1

Soru ve cevaplar

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

1 Öncelikli kuyruk neyi önce çıkarır?

  • İlk eklenen
  • En yüksek öncelikli Doğru cevap
  • Son eklenen
  • Rastgele

Açıklama: En yüksek öncelikli

2 Peek

Soru
return arr[____]
Cevap
return arr[0]

Açıklama: 0 doğru.

3 Öncelikli kuyruk nedir: kavramları eşleştir

Kavram Anlamı
Push Ekle + sift-up
Pop Kök al + sift-down
Peek Kök oku
Heap Temel

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