Sıra (Queue)
Yazan : Şadi Evren ŞEKER
Sıra, basit veri yapılarından birisidir. Buna göre bir sıraya ilk giren ilk çıkar (FIFO , first in first out). Bu yapının olmazsa olmaz iki adet fonksiyonu bulunur:
enque(veri) veya push(veri) -> verilen veriyi sıraya koyar
deque() veya pop() -> sıradan bir veri çıkararak sıranın boyutunu azaltır ve çıkarılan veriyi çağrıldığı yere döndürür.
| Komutlar | Sıranın durumu |
| enque(10) | 10 |
| enque(20) | 10 -> 20 |
| enque(30) | 10 -> 20 ->30 |
| deque() | 20 -> 30 |
| deque() | 30 |
| deque() | Boş |
Yukarıda bir sıra üzerinde yapılan ekleme ve çıkarma işlemleri gösterilmiştir. Yukarıda sıranın durumu olarak gösterilen yapıda bir bağlı liste üzerinden verilerin nasıl eklenip çıkarıldığı tasvir edilmiştir. Bir sıra için bağlı liste kullanılabileceği gibi dizi (Array) de kullanılabilir. Ayrıca yukarıdaki bağlı listede, listenin sağına eklenerek solundan çıkarma işlemi yapılmıştır. Bu işlemin tam tersi olan soluna yeni verileri ekleyerek sağından çıkarma işlemi de yapılabilir.
Dizi kullanıldığında karşılaşılan problem dizinin boyutunun sınırlı olmasıdır. Bu durumda dizideki verilerin dizi boyutunu aşınca daha büyük başka bir diziye taşınması gerekir. Ayrıca dizinin belirli bir elemenından sayılar dequeue yapılıyorsa dizideki elemanların dequeue yapıldıkça kaydırılması da gerekir.
Aşağıda bağlı liste (linked list) ve dizi (Array) kullanılarak yazılmış iki adet kod örneği verilmiştir:
- Bağlı liste (linked list) kullanarak sıra (queue) örnek kodu
- Dizi (Array) kullanarak sıra (queue) örnek kodu
« Ortak Bölenlerin En Büyüğü (OBEB, GCD, Greatest Common Divisor) | Feistel Şifreleme (Feistel Cipher, Fesitel Ağı, Feistel Network) »
Yorumlar
Giriş yaparak yorum yazabilirsiniz.
bilgisayar.kavramlari.com üzerinde şu anda okumakta olduğunuz 'Sıra (Queue)' isimli yazı 16 Apr 2008 tarihinde, saat: 07:58 'de Şadi Evren ŞEKER tarafından gönderilmiş, toplam 223 defa okunmuştur.
Benzer yazıları veri yapıları kategorilerinden okuyabilirsiniz. Yazar ile irtibat kurmak için email gönderebilirsiniz. Yazıya yorum yapabilir ya da yapılan yorumları RSS 2.0 ile takibe alabilirsiniz.
Eklenen Son Yazılar
- Devamsal Geçiş Tarzı (Continuation-passing style, CPS)
- Kuyruk Özyinelemesi (Tail Recursion, Birikimsel Tarz, Accumulation Style)
- Sıralama Algoritmaları (Sorting Algorithms)
- Seçerek Sıralama (Selection Sort)
- Hızlı Sıralama Algoritması (Quick Sort Algorithm)
- Birleştirme Sıralaması (Merge Sort)
- Yığınlama Sıralaması (Heap Sort)
- Yığın Ağacı (Heap)
- Dizi üzerinde ağaç kodlaması
- Nöbetçi (Sentinel)
Yapılan Son Yorumlar
- hercumartesi: 777/10 mod23 işleminde takıldığım...
- hercumartesi: 2P = R olarak gösterip s için (3xP^2 + a)...
- Şadi Evren ŞEKER: Toplama işlemi sonucunda mod işlemi...
- bazenvebazen: n q b b w derken n q p b w demek istedik?...
- Şadi Evren ŞEKER: Tümleyeni terimini şu şekilde...
Bağlantılar