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 fifo). Bazı kaynaklarda kuyruk kelimesi de kullanılır. Basitçe bir gişe önündeki bilet kuyruğu veya bilet sırası olarak düşünülebilir. 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 (C dilinde)
- Dizi (Array) kullanarak sıra (queue) örnek kodu (C dilinde)
- Bağlı liste (linked list) kullanarak sıra (queue) örnek kodu (C++ Dilinde)
Sıra (Queue ) içerisine veri ekleme fonksiyonu genel olarak enqueue(sıraya koymak, sıralamak) ve sıradaki bir elemanın sıradan alınmasına ise dequeue (sıradan almak, çıkarmak) ismi verilmektedir.
« Ortak Bölenlerin En Büyüğü (OBEB, GCD, Greatest Common Divisor) | Feistel Şifreleme (Feistel Cipher, Fesitel Ağı, Feistel Network) »
Yorumlar
Bilgisayar Kavramları ü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 981 defa okunmuştur.
Benzer yazıları Bilgisayar Kavramları, 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.
Yazarın Kitabı
Bu yazının yazarı Şadi Evren ŞEKER'in son çıkan kitabı "Programlama ve Veri Yapılarına giriş (C, C++ ve JAVA ile)" hakkında bilgi almak için Buraya tıklayabilirsiniz.
Eklenen Son Yazılar
- Visual Basic ile Gösterici (Pointer) Kullanımı
- Hasse Çizgeleri (Hasse Diagrams)
- Zeki Vekiller (Akıllı Ajanlar, Intelligent Agents, Zeki Etmenler )
- Integral Kriptoanalizi ( Toplam Tecessüsü , Integral Cryptoanalysis)
- Diferansiyel Kriptoanalizi ( Fark Tecessüsü , Differential Cryptoanalysis)
- Sierpinski Üçgeni (Sierpinski Triangle)
- C ile programlamaya giriş final sınavı çözümleri
- Çok Seviyeli Sıralar (Multi Level Queues)
- Çift Özetleme (Double Hashing)
- İkinci Dereceden Sondalama (Quadratic Probing)
Yapılan Son Yorumlar
- Şadi Evren ŞEKER: Null, NULL, nil veya null olarak...
- Fatih Kabakci: hocam merhabalar,...
- kara: Çok güzel anlatılmış gerçekten teşekkürler...
- Şadi Evren ŞEKER: Bahsettiğiniz şekil dönüşümü...
- Caner: Kullanıcıdan açı girdisi almıyorsanız...
- Furkan Yediyildiz: Algoritmanin mantigi cok güzel...
- havva: çok sağolun çok güzel açıklamalar var tşk...
- Şadi Evren ŞEKER: typedef komutu, bir yapıdan yeni bir...
- fatih kabakci: hocam ben structures ile ilgili bir sorum...
- Şadi Evren ŞEKER: evet, yukarıda açıklanan, herhangi...
- Abdurrahman ulusoy: fi açısından teta kadar döndürme...
- Şadi Evren ŞEKER: Hayır yok, bir noktanın, herhangi...
- Abdurrahman ulusoy: Bu durumda yukarıdaki formüllerin...
- Abdurrahman ulusoy: Merhaba hocam Üstteki mesajımda...
- mustafa ekmekcioğlu: merhaba şadi bey ben hacettepe...
- Şadi Evren ŞEKER: Talebiniz üzerine...
- Evren Kocaturk: ve bunu matlab üzerinde, gerekli...
- Evren Kocaturk: teşekkürler, işime yarayacak gibi,...
- tuncay çavuşoğlu: Şadi bey teşekkürler.Kısa ve...
- attila: hocam bunun bir örneginide Visual Basic diliyle...
Yakın Yazılar
Çift Uçlu Sıra (Double Ended Queue)
Priority Queue (Öncelik Sırası, Rüçhan Sırası)
Çok Seviyeli Sıralar (Multi Level Queues)
sıra gecikmesi (queueing delay)
İlk Gelen Çalışır (First Come First Serve, FSFC, FIFO)
Meşguliyet (Utilization, Kullanım)
Abstract Data Type (ADT - Soyut Veri Tipleri)
A Yıldız Arama Algoritması (A Star Search Algorithm, A*)
İşlemci Zamanlama (CPU Scheduling)
CPU Utilization (MİB Meşguliyeti)
SMTP ( Simple Mail Transport Protocol)
Bağlantılar
[...] Daha fazla bilgi için : Sıra (Queue) [...]
[...] bilgisinin olmasını gerektirmemesidir. Örnek soyut veri tipleri olarak bağlı liste , stack , sıra ( queue) , kompleks sayılar , kümeler [...]