Search

C# ile Stack ve Queues



4 yorum

C# ile Stack ve Queues

Stack

stack push popStack kavramı LIFO mantığına göre çalışır. LIFO (Last In,First Out) son giren ilk çıkar, bunu güzel bir örnekle açıklayalım. Bir fırının ekmek pişirdiğini düşünelim. Her çıkan ekmeği üst üste koysun. Yeni gelen bir kişi ekmek almak istediğinde en üstteki ekmeği verecektir. Yani en son çıkan ekmek ilk verilen ekmek olmuş olacaktır.

Stack kullanımında Push ile istediğimiz değerleri atar, Pop ile çekeriz. Bunu kodlar üzerinde görelim.

Stack stackornek = new Stack();
stackornek.Push("yazi 1");
stackornek.Push("yazi 2"); //Yığına iki tane değer attık.
Şimdi pop ile yığından en üsttekini alıyorum.

object o = stackornek.Pop(); // en üstteki değeri alır. yani en son attığım (yazi 2 alınmış oldu)
object o = stackornek.Peek(); // en üstteki değer okur. (yazi 2 alındığından, yazi 1 okunur.)
int c = stackornek.Count; // Stackte tutulan parça sayısını gösterir


Queues

Queues, Stack kavramına çok benzer bir yapıya sahiptir. En temel farkları Stack LIFO mantığına göre çalışır, Queues ise FIFO mantığına göre çalışır. FIFO(First In First Out), ilk giren ilk çıkar demektir. Queues adı üstünde bir kuyruk yapısına sahiptir, örneğin bir bankamatik kuyruğunu düşünebilirsiniz. İlk gelen kişi, sıranın en başındadır ve işini ilk önce halledecek kişidir. Queues hakkında temel bilgilerse şöyle:

Queue ornekqueue = new Queue();
ornekqueue.Enqueue("yazi 1");
ornekqueue.Enqueue("yazi 2"); //Kuyruğa iki değer attık.

object o = ornekqueue.Dequeue(); // ilk giren parçayı alır.
object o = ornekqueue.Peek(); //ilk giren parçayı okur.
int kactane = ornekqueue.Count; //Kuyrukta kaç tane parça olduğunu verir.

4 yorum:

yaşar at: 8 Mayıs 2013 06:48 dedi ki...

stack ise LIFO mantığına göre çalışır demişsin.

o stack değil queue olmalı. sanırım gözden kaçmış.

egvrcn at: 8 Mayıs 2013 08:13 dedi ki...

Teşekkürler yaşar, dikkatsizliğime gelmiş düzelttim

Mehmet at: 5 Ağustos 2014 09:11 dedi ki...

peki şimdi bunu ne yaparken kullanırız. çok bodoslama oldu ama.. niye array değil? collection değil?

egvrcn at: 5 Ağustos 2014 22:58 dedi ki...

Merhaba Mehmet, Queue FIFO, ilk giren ilk çıkar mantığına göre, Stack ise LIFO, son giren ilk çıkar mantığına göre çalışır.
Array yada Collection gibi tanımlayıcılar bu mantığa göre çalışmazlar daha çok rastgele mantıktadır. Her ne kadar Queue yada Stack gibi davranmasını sağlayabilsekte bozulmaya açıktırlar.
Bu yüzden işlerimiz FIFO yada LIFO mantığına göre yürüyecekse Stack, Queue kullanmamız yararımıza olacaktır.

Yorum Gönder

Check Page Rank
DMCA.com