Jump to content
  • entries
    33
  • comments
    0
  • views
    1,227

Doğuhan ELMA

41 views

Queue (Kuyruk), bir veri yapısıdır ve ilk giren, ilk çıkar (First In, First Out - FIFO) ilkesine göre çalışır. Yani, kuyruğa ilk eklenen öğe, ilk çıkarılacak olan öğedir.

Kuyruk Operasyonları:

Enqueue: Kuyruğun sonuna bir öğe ekler.

Dequeue: Kuyruğun başından bir öğe çıkarır ve döndürür.

Front: Kuyruğun başındaki öğeyi döndürür, ancak çıkarmaz.

Rear: Kuyruğun sonundaki öğeyi döndürür.

IsEmpty: Kuyruğun boş olup olmadığını kontrol eder.

Size: Kuyruğun boyutunu, yani içindeki öğe sayısını döndürür.

Kuyruk Kullanım Alanları:

Kuyruklar, birçok alanda kullanılır, özellikle:

İşletim Sistemleri: İşlem planlamada, işlemlerin ne sırayla yürütüleceğini belirlemek için kullanılır.

Yazıcılar: Birden fazla belgenin yazdırılmasını sıraya almak için kullanılır.

Ağ Talepleri: Web sunucuları, istekleri sırayla işlemek üzere kuyruğa alabilir.

BFS (Genişlik İlk Arama) gibi grafik tarama algoritmalarında.

Python'da Kuyruk Oluşturma:

Python'da kuyruk oluşturmak için çeşitli yollar vardır. Standart bir liste kullanarak veya queue modülü kullanarak kuyruk oluşturabilirsiniz.

Liste Kullanarak:

queue = []
queue.append(5) # Enqueue
queue.append(10) # Enqueue
first_item = queue.pop(0) # Dequeue

queue Modülü Kullanarak:

from queue import Queue

q = Queue()
q.put(5) # Enqueue
q.put(10) # Enqueue
first_item = q.get() # Dequeue

queue modülü, Queue, LifoQueue (Yığına benzer bir yapı), ve PriorityQueue (öncelikli kuyruk) gibi farklı kuyruk türlerini destekler.

Kuyruk veri yapısı, mantığı ve kullanımı oldukça basittir, ancak işlem planlamadan, ağ hizmetlerine, veri akışının düzenlenmesine kadar birçok alanda hayati bir rol oynar.

 

LifoQueue

LifoQueue (Last In, First Out Queue), bir yığın (stack) gibi davranan bir kuyruk türüdür. Son eklenen öğe ilk çıkarılır. Bu, geleneksel bir kuyruk yapısının tam tersidir.

LifoQueue kullanım örneği:

from queue import LifoQueue

lifo = LifoQueue()
lifo.put(5)
lifo.put(10)

item = lifo.get() # 10 değerini döndürür, çünkü en son eklenen öğeydi

 

PriorityQueue

PriorityQueue, her öğenin bir önceliği olduğu ve öncelik değerine göre sıralandığı bir kuyruk türüdür. En düşük öncelikli öğe ilk çıkarılır. Eğer öğelerin önceliği aynıysa, ilk eklenen öğe ilk çıkarılır.

Öğeler genellikle (öncelik, öğe) şeklinde bir çift (tuple) olarak eklenir, burada "öncelik" bir sayısal değer olabilir. Daha düşük sayılar daha yüksek öncelik anlamına gelir.

PriorityQueue kullanım örneği:

from queue import PriorityQueue

pq = PriorityQueue()
pq.put((2, "Orta öncelik"))
pq.put((1, "Yüksek öncelik"))
pq.put((3, "Düşük öncelik"))

item = pq.get() # "Yüksek öncelik" değerini döndürür, çünkü en düşük öncelik değerine sahip

Sonuç

LifoQueue: Son eklenen öğenin ilk çıkarıldığı bir kuyruk türüdür (yığın gibi davranır).

PriorityQueue: Öğelerin önceliklerine göre sıralandığı bir kuyruk türüdür. En düşük öncelik değerine sahip öğe ilk çıkarılır.

Bu iki kuyruk türü, farklı kullanım senaryoları ve ihtiyaçlara göre kullanışlı olabilir. Örneğin, işlem planlamada öncelikli kuyruk, belirli işlemlere öncelik vermek istediğinizde kullanılabilir.

0 Comments


Recommended Comments

There are no comments to display.

Guest
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...