Veri yapıları, verileri organize etme, saklama ve işleme yöntemlerini tanımlayan programlama kavramlarıdır. Etkili algoritmalar tasarlamanın temelini oluştururlar ve yazılım geliştirmenin kritik bileşenleridir.
Her düğümün en fazla iki çocuğa sahip olduğu, hızlı arama, ekleme ve silme işlemlerine olanak tanıyan hiyerarşik yapı.
Anahtarları değerlere eşleyen, hash fonksiyonu kullanarak sabit zamanlı erişim sağlayan veri yapısı.
Her düğümün veri ve bir sonraki düğüme referans içerdiği dinamik bir veri yapısı.
İlk giren ilk çıkar (FIFO) prensibiyle çalışan, elemanları sırayla işleyen veri yapısı.
Aralık sorguları ve nokta güncellemeleri için optimize edilmiş, logaritmik performans sağlayan ağaç yapısı.
Son giren ilk çıkar (LIFO) prensibiyle çalışan, yalnızca en üstteki elemana erişim sağlayan veri yapısı.
String verilerini verimli şekilde saklamak ve prefix tabanlı aramalar yapmak için kullanılan ağaç yapısı.
Kırmızı-Siyah Ağaç, 2-3 ve 2-3-4 Ağaçları, Dijital Arama Ağacı ve Patricia Ağacı varyantlarını içerir.
ISAM (Dizinli Sıralı Erişim) ve Genişletilebilir Hashing (Extendible Hashing) yöntemlerini içerir.
Doğrusal Sonda (Linear Probing) ve Çift Hashing (Double Hashing) çakışma çözümleme şemalarını içerir.
Diziden yığın oluşturma (Heapify) ve Dolaylı Yığın (Index Heap) işlemlerini içerir.
Hızlı Birleştirme (Quick Union), Ağırlık/Yükseklik Dengeli Union-Find ve Yol Yassılaştırma (Path Compression) işlemlerini içerir.
Eşdeğerlik kümeleri (MFSET), Küme Birleştirme/Bölme (Merge/Split) ve Küme Birleşim/Kesişim işlemlerini içerir.
BST islemlerinden sonra yukseklik farkini en fazla 1 tutmak icin rotasyon yapan kendini dengeleyen agac islemleridir.
Cok yollu dengeli arama agacinda dugum bolme, odunc alma ve birlestirme ile arama agacini disk dostu tutan islemlerdir.
Hash cakismalarini her tablo kovasinda ayri bir liste veya koleksiyon tutarak cozen hashing yontemidir.
Cakisma durumunda ayni tablo icinde yeni hucreler deneyerek anahtari yerlestiren kapali tablo hashing yontemidir.
Yeni elemani heap in sonuna koyup ebeveynleriyle yer degistirerek heap kosulunu yukari dogru onarir.
Kok elemani kaldirip son elemani koke alarak heap kosulunu asagi dogru onaran remove islemleridir.
Heap kosulu kok veya ara dugumde bozuldugunda elemani cocuklariyla karsilastirarak asagi indiren onarim islemidir.
Elemanlari oncelik degerine gore ekleyen, cikaran ve oncelik degisikliginde yeniden konumlandiran soyut veri tipi islemleridir.
Union-Find yapisinda kucuk agaci buyuk agacin kokune baglayarak agac yuksekligini sinirlayan birlestirme stratejisidir.
Find islemi sirasinda ziyaret edilen dugumleri dogrudan koke baglayarak sonraki sorgulari hizlandiran Union-Find optimizasyonudur.
Agac dugumlerini preorder, inorder, postorder, breadth-first veya non-recursive sekillerde sistematik ziyaret etme yontemleridir.
Agac dolasimini cagri yigini yerine acik stack veya kuyruk kullanarak yapan iterative traversal ailesidir.
Kok, sol ve sag alt agac ziyaret sirasini degistirerek agac yapisindan farkli semantik ciktilar ureten temel traversal siralaridir.
Veri yapıları, verileri organize etme ve işleme yöntemlerini sağlayan programlama konseptleridir. Doğru veri yapısı seçimi, algoritmaların verimliliğini ve performansını doğrudan etkileyen kritik bir faktördür. Her veri yapısının kendine özgü avantajları, dezavantajları ve optimal kullanım alanları bulunmaktadır.
Veri yapıları genel olarak iki ana kategoriye ayrılır. İlkel veri yapıları tamsayılar, kayan noktalı sayılar ve karakterler gibi doğrudan değerleri temsil eden basit veri tiplerini kapsar. Soyut veri yapıları ise daha karmaşık veri organizasyonlarını tanımlayan üst düzey yapılardır ve diziler, bağlı listeler, yığınlar, kuyruklar, ağaçlar, grafikler ve hash tablolar bu kategoriye girer.
Elemanların sıralı bir şekilde organize edildiği yapılardır. Linked List, Stack, Queue gibi yapılar bu kategoriye girer. Her eleman kendinden önceki ve sonraki elemanla doğrudan ilişki içindedir.
Hiyerarşik organizasyon sağlayan yapılardır. Binary Search Tree, Trie, Segment Tree gibi yapılar farklı problemler için optimize edilmiş ağaç implementasyonlarıdır. Logaritmik performans ve organize veri erişimi sağlarlar.
Hash fonksiyonları kullanarak sabit zamanlı erişim sağlayan yapılardır. Hash Table anahtar-değer eşleştirmesi için optimize edilmiş olup, ortalama durumda O(1) performans sunar.
Ardışık bellek konumlarında saklanan sabit boyutlu koleksiyonlar. İndeksleme ile hızlı erişim sağlar ancak dinamik boyut değişikliği desteklemez.
Dinamik boyutlu, her elemanın bir sonrakine işaret ettiği yapılar. Ekleme ve silme işlemleri verimlidir ancak rastgele erişim mümkün değildir.
Son giren ilk çıkar (LIFO) prensibiyle çalışır. Fonksiyon çağrıları, geri alma özellikleri ve expression evaluation için idealdir.
İlk giren ilk çıkar (FIFO) prensibiyle çalışır. İş sıralaması, mesaj kuyruklama ve breadth-first search implementasyonları için kullanılır.
Hiyerarşik yapıdır, arama ve sıralama işlemleri için etkilidir. Balanced tree varyantları logaritmik performans garantisi sağlar.
String verilerini prefix tabanlı organize eden ağaç yapısı. Autocomplete, dictionary implementasyonları ve string pattern matching için idealdir.
Aralık sorguları (range queries) için optimize edilmiş ağaç yapısı. Toplam, minimum, maksimum gibi aggregate operasyonları logaritmik zamanda gerçekleştirir.
Anahtarları değerlere eşleyen, ortalama durumda sabit zamanlı erişim sağlayan yapılardır. Dictionary implementasyonları ve caching sistemleri için kritiktir.
Doğru veri yapısını seçmek, algoritma tasarımının kritik bir parçasıdır ve çözülecek problem türü, veri boyutu, işlem tipleri ve performans gereksinimleri göz önünde bulundurularak belirlenir. Erişim sıklığı, güncellenme paternleri, bellek kısıtlamaları ve zaman karmaşıklığı gereksinimleri de seçim sürecinde önemli faktörlerdir.
Modern yazılım geliştirmede veri yapıları, sadece teorik kavramlar değil, günlük programlama pratiğinin ayrılmaz parçalarıdır. Veritabanı tasarımından kullanıcı arayüzü geliştirmeye, sistem programlamadan web uygulamalarına kadar her alanda doğru veri yapısı seçimi, performanslı ve ölçeklenebilir çözümler üretmenin temelidir.