C# – Veri Yapıları Rehberi

Merhaba! Bu rehberde, C# dilinde kullanılan veri yapılarına odaklanacağız. Veri yapıları, programlama dillerindeki temel yapısal unsurlardır ve verilerin organize edilmesi, depolanması ve erişilmesi için kullanılırlar. C# dilinde, çeşitli veri yapıları mevcuttur, örneğin diziler, listeler, kuyruklar, yığıtlar ve daha fazlası. Şimdi, her bir veri yapısını ayrıntılı olarak inceleyelim.

  1. Diziler (Arrays)

Diziler, C# dilinde en temel veri yapılarından biridir. Bir dizi, aynı türden verilerin bir araya getirildiği bir veri koleksiyonudur. Örneğin, bir dizi oluşturarak birkaç tamsayıyı depolayabilirsiniz:

int[] numbers = new int[5];
numbers[0] = 1;
numbers[1] = 2;
numbers[2] = 3;
numbers[3] = 4;
numbers[4] = 5;

Dizilere erişim, indis numarası kullanılarak yapılır. Diziler 0 tabanlıdır, yani ilk öğe 0. indiste bulunur. Örneğin, yukarıdaki örnekte numbers[0], 1 değerini temsil eder. Dizilerin sabit boyutları vardır, bu nedenle başlangıçta bir boyut belirtmeniz gerekir.

  1. Listeler (Lists)

Listeler, C#’ın System.Collections.Generic isim alanında bulunan bir veri yapısıdır. Dizilere benzer şekilde, listeler de aynı türden verilerin bir koleksiyonunu temsil eder, ancak dinamik bir boyuta sahiptirler. Yeni bir liste oluşturmak için aşağıdaki gibi bir kod kullanabilirsiniz:

List<int> numbers = new List<int>();
numbers.Add(1);
numbers.Add(2);
numbers.Add(3);
numbers.Add(4);
numbers.Add(5);

Listeler, boyutları otomatik olarak genişletilebildiği için dizilere göre daha esnek bir seçenektir. Ayrıca, List<T> sınıfı, koleksiyon üzerinde bir dizi işlemi gerçekleştirmek için birçok kullanışlı metot ve özellik sunar.

  1. Kuyruklar (Queues)

Kuyruklar, FIFO (First-In, First-Out) prensibiyle çalışan veri yapılarıdır. Bir kuyruk, yeni elemanların bir uçtan eklenip diğer uçtan çıkarıldığı bir veri yapısıdır. C# dilinde Queue<T> sınıfı kullanılarak kuyruklar oluşturulabilir. Aşağıdaki örnek, bir kuyruğa eleman eklemeyi ve çıkarmayı göstermektedir:

Queue<string> queue = new Queue<string>();
queue.Enqueue("Eleman 1");
queue.Enqueue("Eleman 2");
queue.Enqueue("Eleman 3");

string firstItem = queue.Dequeue();
Console.WriteLine(firstItem); // "Eleman 1"

Kuyruklar, işlem sırasına bağlı olarak elemanları tutmak ve işlemek için kullanışlıdır. Örneğin, çoklu iş parçacıklı bir uygulamada kullanıcı taleplerini işlemek için bir kuyruk kullanabilirsiniz.

  1. Yığıtlar (Stacks)

Yığıtlar, LIFO (Last-In, First-Out) prensibiyle çalışan veri yapılarıdır. Bir yığın, yeni elemanların bir uca eklenip aynı uçtan çıkarıldığı bir veri yapısıdır. C# dilinde Stack<T> sınıfı kullanılarak yığıtlar oluşturulabilir. Aşağıdaki örnek, bir yığına eleman eklemeyi ve çıkarmayı göstermektedir:

Stack<string> stack = new Stack<string>();
stack.Push("Eleman 1");
stack.Push("Eleman 2");
stack.Push("Eleman 3");

string topItem = stack.Pop();
Console.WriteLine(topItem); // "Eleman 3"

Yığıtlar, geri alma işlemlerinde veya derinlik öncelikli arama gibi senaryolarda kullanışlıdır. Ayrıca, özyinelemeli fonksiyonlar veya geri izleme algoritmaları gibi durumlarda da yığıtlar kullanılabilir.

  1. Hash Tabloları (Dictionaries)

Hash tabloları, anahtar-değer çiftleriyle çalışan veri yapılarıdır. Bir anahtar, bir değeri temsil eden benzersiz bir kimlik niteliğine sahiptir. C# dilinde Dictionary<TKey, TValue> sınıfı kullanılarak hash tabloları oluşturulabilir. Aşağıdaki örnek, bir dictionary oluşturmayı ve anahtar-değer çiftlerini kullanmayı göstermektedir:

Dictionary<string, int> ages = new Dictionary<string, int>();
ages["Ali"] = 25;
ages["Ayşe"] = 30;
ages["Mehmet"] = 35;

int mehmetAge = ages["Mehmet"];
Console.WriteLine(mehmetAge); // 35

Hash tabloları, anahtarlar üzerinden hızlı bir şekilde değerlere erişmenizi sağlar. Büyük veri koleksiyonlarında verimli bir şekilde arama yapmak için kullanışlıdır.

Sonuç olarak, C# dilinde kullanılan veri yapıları, verilerin farklı şekillerde organize edilmesi ve depolanması için çeşitli seçenekler sunar. Bu rehberde, diziler, listeler, kuyruklar, yığıtlar ve hash tabloları gibi temel veri yapılarını inceledik. Her bir veri yapısının kendi kullanım senaryoları ve özellikleri vardır. Projelerinizde ihtiyaçlarınıza uygun olan veri yapısını seçebilir ve verilerinizi etkili bir şekilde yönetebilirsiniz.

Umarım bu rehber, C# dilinde veri yapılarına dair anlayışınızı geliştirmenize yardımcı olur. Başarılar dilerim!

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir