Yaygın Kullanılan Veri Yapıları ve Uygulama Alanları

Yaygın Kullanılan Veri Yapıları ve Uygulama Alanları

Verinin depolanması ve organize edilmesinin efektif şekilde yapılabilmesi için bilinmesi gereken en önemli konulardan veri yapıları ve uygulama alanlarını mercek altına alıyoruz.
Serdar Tafralı20 Kas 2022

Veri yapıları, saklanan veriler üzerinde işlemlerin daha verimli bir şekilde gerçekleştirilebilmesi için verileri bilgisayarlarda düzenlemenin ve depolamanın özel bir formatı olmakla birlikte geniş ve çeşitli bir kullanım alanına sahiptir.

Veri yapıları, geliştirilen hemen hemen her program veya yazılım sisteminde kullanılmaktadır. Ayrıca, veri yapıları bilgisayar bilimi ve yazılım mühendisliğinin temelleri arasındadır. Yazılım mühendisliği mülakat soruları kapsamında önemli bir konu olduğundan  geliştiricilerin veri yapıları hakkında iyi bir bilgiye sahip olması gerekmektedir. Aynı zamanda indekslenmiş yapıya sahip olmalarından ötürü rastgele erişim mümkündür.

 

Dizi: (array)

Verimli veri saklama ve yüksek seviyeden (vektörel) işlemler yapılabilmesini sağlayan bir veri yapısıdır. İçerisinde sabitlenmiş bir tipte (fix-type) veri tutarken birçok veri yapısına kıyasla çok daha hızlı bir şekilde işlem yapılmasına olanak tanır.

 

 

Diziler; yığınlar, dizi listeleri, karma tablolar, vektörler ve matrisler gibi diğer veri yapılarını oluşturmak için yapı taşları olarak kullanılmakla birlikte çeşitli sıralama algoritmaları için de kullanılır.

 

Bağlı liste: (linked list)

Bağlı listeler, birbirine bağlı doğrusal sırada bir dizi öğeden oluşan sıralı bir yapıdır. Bu nedenle, verilere sırayla erişilmesi gerekir ve rastgele erişim mümkün değildir. Bağlantılı listeler dinamik kümelerin basit ve esnek bir gösterimini sağlar.

 

 

Bağlantılı bir listedeki öğeler düğümler olarak bilinir. Her düğüm, bir sonraki ardıl düğüme bir anahtar ve bir işaretçi içerir. Kafa (head) isimli eleman, bağlantılı listenin ilk öğesini gösterir. Bağlantılı listenin son elemanı ise kuyruk (tail) olarak bilinir.

 

Yığın: (stack)

Yığın, birçok programlama dilinde yaygın olarak bulunabilen bir LIFO (Last In First Out, Son Giren İlk Çıkar) yapısıdır. En son yerleştirilen öğeye ilk önce erişilebilir.

 

 

Bir yığın üzerinde gerçekleştirilebilecek iki temel işlem vardır. Bunlar yığına eleman eklemek için kullanılan push ve yığından kullanılmak üzere eleman almak için kullanılan pop işlemleridir. Yığınlar bazı algoritmaların yapılarında ve birçok yapının (matematiksel ifadeler gibi) değerlendirilmesinde kullanılır.

 

Kuyruk: (queue)

Kuyruk, birçok programlama dilinde yaygın olarak bulunabilen bir FIFO (First In First Out, İlk Giren İlk Çıkar) yapısıdır. İlk yerleştirilen öğeye önce erişilebilir. Bu yapı, gerçek dünyadaki bir kuyruğa, yani kuyrukta bekleyen insanlara benzediği için “kuyruk” olarak adlandırılmıştır. Kuyruk yapısının temel çalışma mekanizması, kuyruğun sonuna bir öğe eklenmesi ve kuyruğun başından bir eleman silinmesi şeklindedir.

 

 

Kuyruk sektörel olarak, bir kod setinin farklı yürütme aşamalarında birkaç işlemci tarafından kullanılabileceği bir teknik olan multithreading yönteminde, iş bölünmelerinin yönetimi aşamasında ve kuyruk yapısıyla çalışan sistemleri geliştirmek amacıyla kullanılır (örneğin, öncelik sıraları oluşturmanın ve yönetmenin gerektiği yapılar).

 

Komut çizelgesi: (hash table)

Hash Table, her biri ile ilişkili anahtarlara sahip değerleri saklayan bir veri yapısıdır. Bu yapı aranan değerin bağlı olduğu anahtar değer bilindiği takdirde aramayı çok efektif bir şekilde gerçekleştirmeyi sağlar. Bu nedenle, verilerin boyutundan bağımsız olarak ekleme ve aramada çok verimlidir. Hash tabloları anahtar değer ve çıktı değeri arasındaki bağlantıyı bir hash fonksiyonu kullanarak oluşturur. 

 

 

Hash tabloları,küme (set) veri yapısını, veritabanı dizinleri ve ilişkisel dizileri oluşturmak için kullanılır.

 

Ağaç: (tree)

Ağaç, verilerin hiyerarşik olarak düzenlendiği ve birbirine bağlandığı hiyerarşik bir yapıdır. Bu yapı bağlantılı listelere benzerdir fakat bağlantılı listeler ağaçlardan farklı olarak doğrusal bir sırayla bağlanır.

 

 

Belirli uygulamalara uyum sağlamak ve belirli kısıtlamaları karşılamak amacıyla geçtiğimiz yıllar boyunca çeşitli ağaç türleri geliştirilmiştir. Bazı örnekler; ikili arama ağacı, B ağacı, treap, kırmızı-siyah ağaç, yay ağacı, AVL ağacı ve n-ary ağacıdır.

Ağaç yapılarının bazı uygulamaları: İfade ayrıştırıcılarını ve çözücülerini oluşturmak ve kablosuz ağlarda kullanılır. Ayrıca verilerin sürekli girip çıktığı birçok arama uygulamasında kullanılır. Tüm bunlarla beraber java nesnelerini depolamak için JVM (Java Virtual Machine) tarafından kullanılır.

 

Grafik: (graph)

Grafik yapısı, sonlu sayıda köşe veya düğüm kümesinden ve bu köşeleri birbirine bağlayan bir dizi kenardan oluşur. Birbirlerine aynı kenarla bağlı olan iki düğümün bitişik olarak adlandırıldığı bu yapının genel düzenini köşelerin ve kenarların sayısı belirler.

 

 

Grafik yapısına sosyal medya ağlarının temsili örnek verilebilir. Her bir kullanıcının bu yapıda bir tepe noktası olarak betimlendiği durumda, bağlantı kurulan her bir farklı kullanıcı ile arasında bir kenar oluşturur. Farklı bir uygulama alanı olarak, grafik yapısının arama motorları tarafından web sayfalarını ve bağlantıları temsil etmek için kullanılması örnek gösterilebilir. İnternetteki web sayfaları birbirine köprülerle bağlanır. Her sayfa bir tepe noktasıdır ve iki sayfa arasındaki köprü bir kenarı temsil eder. Grafik yapısı ayrıca GPS'de konumları ve rotaları temsil etmek için kullanılır. Konumlar köşelerdir ve konumları birbirine bağlayan rotalar kenarlardır. İki konum arasındaki en kısa rotayı hesaplamak için kullanılır.

Veri yapıları hakkında detaylı bilgi edinmek isterseniz Miuul'un oluşturduğu eğitimleri inceleyebilir, veri bilimini kariyer yolunuz olarak belirlemek isterseniz Veri Bilimci Kariyer Yolculuğu’na katılabilirsiniz.
 

 

Kaynaklar

Miuul topluluğunun bir parçası ol!

Abone ol butonuna tıklayarak Miuul'dan pazarlama ve haber içerikleri almayı onaylıyorum.