C# (C Sharp) Ders 12 – Koleksiyonlar (Collections) – Stack<T>

Stack<T>, LIFO (Last In, First Out – Son Giren İlk Çıkar) prensibiyle çalışan bir koleksiyondur. Yani, son eklenen eleman ilk çıkarılır. Bir yığın gibi düşünebiliriz; en üste koyduğumuz tabak ilk alınır. “T”, yığında tutacağı veri türünü temsil eder.

Kullanım Alanları

  • Geri alma/ileri alma işlemleri (örneğin, metin editörlerinde)
  • Depth-First Search (DFS) algoritması uygulamaları
  • Parantez eşleştirme kontrolü
  • Fonksiyon çağrı yığınını yönetme (derleyici tarafından kullanılır)

Stack<T> Oluşturma ve Eleman Ekleme/Çıkarma

C#
using System;
using System.Collections.Generic;

public class StackOrnegi
{
    public static void Main(string[] args)
    {
        // Boş bir int yığını oluşturma
        Stack<int> sayilar = new Stack<int>();

        // Eleman ekleme (Push)
        sayilar.Push(10);
        sayilar.Push(20);
        sayilar.Push(30);

        // Eleman çıkarma (Pop)
        int sonSayi = sayilar.Pop(); // 30 çıkarılır
        Console.WriteLine($"Son sayı: {sonSayi}");

        foreach (int sayi in sayilar)
        {
            Console.WriteLine(sayi);
        }
    }
}

Stack<T>’in Özellikleri

  • Count: Yığındaki eleman sayısını döndürür.

Queue vs Stack

ÖzellikQueue (Kuyruk)Stack (Yığın)
Çalışma PrensibiFIFOLIFO
Eleman EklemeEnqueuePush
Eleman ÇıkarmaDequeuePop
Kullanım AlanlarıGörev sırası, BFSGeri alma, DFS

Koleksiyon Seçimi

Hangi koleksiyonu kullanacağınız uygulamanızın gereksinimlerine bağlıdır. Eğer elemanların sırayla işlenmesi gerekiyorsa Queue<T>’yi, son eklenen elemanın ilk işlenmesi gerekiyorsa Stack<T>’yi tercih etmelisiniz.

Kaynak: https://learn.microsoft.com/tr-tr/dotnet/csharp/tour-of-csharp/tutorials/