Php, Veri Yapıları

Stack (Yığın) ve Queue (Kuyruk) Veri Yapıları

Özet

Stack (Yığın) ve Queue (Kuyruk) veri yapıları, algoritma ve programlamanın temel taşlarından biridir ve pek çok gerçek dünya problemine doğrudan çözüm sunar. Stack yapısı, son giren verinin ilk çıktığı (LIFO) mantığıyla çalışırken; Queue, ilk giren verinin ilk çıktığı (FIFO) prensibini benimser. Bu iki yapı, sadece teorik olarak değil, aynı zamanda günlük hayatta karşılaştığımız birçok senaryoya da birebir uyum sağlar. Örneğin, bulaşık yığınları, dondurma külahları veya bir bilgisayarda yapılan işlemleri geri alma gibi durumlar stack yapısını örneklerken; bankada sıra beklemek ya da müşteri destek hattında sıraya girmek queue yapısına örnek verilebilir. Bu yapılar, verilerin yönetilmesini, işlenmesini ve düzenlenmesini kolaylaştırdığı için yazılım geliştirme süreçlerinde oldukça kritik bir rol oynar. Her geliştiricinin bu kavramları derinlemesine anlaması, daha sağlam ve etkili yazılım çözümleri üretebilmesini sağlar.

Stack (Yığın) Veri Yapısı: Bu yapı, "Last In, First Out" (LIFO) prensibiyle çalışır; yani en son eklenen öğe ilk çıkar.

Queue (Kuyruk) Veri Yapısı: Bu yapı, "First In, First Out" (FIFO) prensibiyle çalışır; yani ilk eklenen öğe ilk çıkar. Bankalardaki sıra sistemi bu yapıya örnek olarak verilmiştir.

 

​​​Makale İçeriği

  1. Stack Veri Yapısı
    • Stack Php Örnek Uygulaması
  2. Queue Veri Yapısı
    • Queue Php Örnek Uygulaması
  3. Sonuç

1. Stack Veri Yapısı

Belirli bir mantığa göre çalışan bir veri yapısıdır. Last İn Firts Out mantığıyla çalışır. Yani işleme son giren ilk çıkar olarak da açıklanabilir. Bu kısımda birçok örnek düşünülebilir. Örneğin özellikle yazılımcıların evindeki bulaşık yığınları tam bu konuya örnektir. En son kullanılan tabaklar en üstte ilk kullanılan tabaklar ise en alttadır. Yani en alttakiler üsttekiler yıkandıktan sonra yıkanacaktır. E haliyle yazılımcı genellikle üstteki tabakları kullandığı için alttaki tabaklara sıranın gelebilmesi biraz zordur. 🙂 

Benzer bir şekilde külahta alınmış olan bir dondurma da yığın veri yapısına örnek olarak gösterilebilir. Külaha eklenen en son top, ilk önce yenilmeye başlayacaktır. Sonuç olarak külaha giren son dondurma topu ilk olarak işlenecektir. 

Bilgisayar tarafındaki işlemlerden bir örnek verecek olursak, geri alma (Ctrl+Z) işlemi düşünülebilir. Aslında son işlemi tekrar çalıştırma işlemini gerçekleştirir. 

Stack için push, pop ve peek 3 temel değerdir. Push ekleme işlemini (Ctrl+C) , Pop son işlemi veya değeri fırlatma işlemi (Ctrl+Z), Peek hali hazırda işleme girecek olan işlemi(Ctrl+V) açıklayabilir.

 1.1. Stack Php Örnek Uygulaması

Stack yapısında üç temel işlem bulunmaktadır:

  • Push: Yeni bir öğe ekleme.

  • Pop: En üstteki öğeyi çıkarma.

  • Peek: En üstteki öğeyi görüntüleme.

PHP dilinde, array_unshift fonksiyonu ile dizinin başına öğe eklenebilirken, array_pop ile dizinin sonundaki öğe çıkarılabilir.

Aşağıdaki örnek diziler ile gerçekleştirilmiştir. Java, C# gibi diller de istenirse linkedList arrayList gibi veri yapıları kullanılarak da gerçekleştirilebilir.

				
					echo "<h3> Stack (Yığın) Örneği: Ekleme Başa Yapılır: İlk Giren Son Çıkar </h3>";
$stack = [25, 35];
echo "Dizinin İlk Hali:";
print_r($stack);
array_unshift($stack, 15);
echo ("Diziden Çıkan Eleman:" . array_pop($stack));
echo "Dizinin Son Hali:";
print_r($stack);
				
			

2. Queue Veri Yapısı

İsminden de anlaşılacağı üzere bir kuyruk veri yapısıdır. Bankalardaki sıralar bu konuyu açıklamak için genel bir örnek olarak düşünülebilir. Yani ilk sırayı alan önce işleme girecektir. Aynı mantıkla çalışan bir yapıdır. FIFO First In First Out olarak da bahsi geçen bir çalışma mantığı vardır.

2.1. Queue Php Örnek Uygulaması

				
					echo "<h3> Queue (Kuyruk)  Örneği: Ekleme Sona Yapılır: İlk Giren İlk Çıkar</h3>";
$queue = array();
array_push($queue, 4, 5, 6, 7, 8, 10);
print_r($queue);
echo ("Diziden Çıkan Eleman:" . array_shift($queue));
echo ("Son Eleman: " . $queue[count($queue) - 1]);
				
			

3. Sonuç

Stack ve Queue veri yapıları, temel veri yapıları arasında yer alır ve birçok uygulamada kullanılır. Stack yapısı, son giren öğenin ilk çıktığı durumlar için idealdir; örneğin, geri alma işlemleri. Queue yapısı ise, ilk giren öğenin ilk çıktığı durumlar için uygundur; örneğin, işlem sıraları. PHP gibi programlama dillerinde bu yapılar kolaylıkla uygulanabilir ve günlük hayattan örneklerle anlaşılması daha da kolaylaşır.​