Kategoriler
veri yapıları

Bağlı Liste(Linked List) Yapısı

Programlama dillerinde birden çok veriyi tutmak için genellikle dizileri kullanırız. Ancak dizileri kullanmak için verimizin boyutunu bilmemiz gerekir. Eğer bilmiyorsak ya da belirlediğimiz değerin üzerine çıkmak istiyorsak sıkıntı yaşarız. Yaşayacağımız bir diğer sıkıntı ise elimizdeki veri setinin arasına bir değer girmek istersek ortaya çıkar. Örneğin 500 elemanlı bir dizinin 300. elemanına dışarıdan başka bir değer […]

Kategoriler
C# Nesne Yönelimli Programlama veri yapıları

İkili Ağaçlar(Binary Tree)

Öncelikle bazı terimlerden bahsetmek istiyorum. Kök- Yukarıdaki resimde görüldüğü gibi ağaç yapımızda tüm elemanlar aslında tek bir yere bağlı. Buna kök diyoruz. Çocuk ve ebeveyn- Kök hariç her düğümün bir ebeveyni vardır. Yaprak-Çocuğu olmaya düğümlere denir. 3-7-10 gibi Kardeş-Ebeveyni aynı olan düğümlerdir. İkili Ağaçların özellikleri Hiçbir düğümün ikiden fazla çocuğu olamaz. Ortalama bir ağacın derinliği(kökten […]

Kategoriler
C veri yapıları

Radix Sort Algoritması

Radiks sort algoritması, 1887 yılında Herman Hollerith’in geliştirdiği “tabulating machine” için kullandığı yönteme dayanır. Yalnızca sayma sayılarını sıralamak için kullanılan bir algoritma değildir. Algoritma O(n) zaman karmaşıklığına sahiptir. Alan maliyeti yüksektir. Çok fazla miktarda sayı sıralanacaksa yönetimi zordur. İki farklı şekilde kullanılabilir. En anlamlı basamağa göre(most significant digit) sıralama ve en anlamsız basamağa göre(least significant digit) sıralama. […]