15 1 0 4000 1 https://haktanbozer.com.tr 300

Veri Kavramı Nedir?

Bilgisayar ortamında bulunan bilgilerin, programların anlayacağı şekliyle düzenlenmiş hali veri olarak adlandırılır. Veri, algoritmalar tarafından işlenen en temel elemanlardır. Veriler düzenli ve doğru ise algoritmanın çalışmasına olumlu bir etkisi olacaktır. Verileri düzenlemek ve saklamak için, veri yapıları kullanılır. Veri yapıları konusu, bilgisayar bilimlerinin en temel konularından biridir.

Veri Yapılarına Neden İhtiyaç Duyulur?

            İşlenecek veriler büyüdükçe, verilerin saklanması ve aranması gibi temel işlemler için maliyetler artıracaktır. Bu maliyeti en düşük seviyede tutmak için veri yapıları kullanılır. Veri yapıları, bilgisayar belleklerin verimli bir şekilde kullanılmasını ve yapılan işlemin en kısa sürede yapılmasın sağlar. Örneğin 10 saniyede yapılacak bir işlem eğer 100 saatte yapılıyorsa, bu durumda hem zaman kaybımız vardır hem de daha fazla bellek gücü boş yere harcanmaktadır. Bu durum zamanımızı ciddi bir şekilde olumsuz olarak etkilemektedir. Ayrıca sistem gereksinimlerimiz de aynı oranda, belki de daha hızlı bir artışla yükselecektir.  Bu yüzden işlenecek olan verilerin çözüme en uygun şekilde organize edilmesi gerekmektedir.

Veri yapıları linear (doğrusal) ve non-linear (doğrusal olmayan) olmak üzere iki grupta incelenmektedir.

 

Kaynak: https://medium.com/@tolgahan.cepel/veri-yap%C4%B1lar%C4%B1-data-structures-giri%C5%9F-c559c3c9467

Linear (Doğrusal)

            Veri elemanlarını sıralı olarak sıralayan bir veri yapısıdır. Bu veri yapısı hafızanın verimli kullanılmasını sağlamaz bu yüzde hafıza israfına neden olur. Bu tipte olan veri yapılarını şu şekilde sıralayabiliriz ;

  • Array (Dizi)

Dizi (Array), bitişik olarak bellekte tutulan bir veri yapısıdır. Aynı türe ait verileri bir arada tutar. Veriler bitişik olarak bellekte tutulduğu için erişim fazlasıyla hızlıdır.

 

  • Linked List (Bağlantılı liste)

Bağlı liste, düğüm (node) ismi verilen bir elemanda veri saklar. Yeni veri ekleneceğinde bir düğüm oluşturulur ve listeye bağlanır. Eleman silineceğinde ise düğümlerden birisi silinir, kopan bağ tekrar sağlanır.

  • Stack (Yığın)

Bilginin geliş sırasına göre, en son gelen elemana ilk erişilen liste yapısına yığın (stack) denir. Verilere yalnız bir uçtan erişim sağlanır. Bu erişimde Last-In-First-Out (LIFO) prensibi vardır. Yani son giren eleman, ilk çıkar.

  1. Eleman Ekle (Push)

Eleman ekleme işlemi için push (ittirmek, sıkıştırmak) terimi kulanılır.

  1. Eleman Çıkar (Pop)

Eleman çıkarma işlemi için pop (çıkmak) terimi kullanılır.

 

  • Queue (Kuyruk)

Bilginin geliş sırasına göre, ilk önce gelen elemana ilk erişilen liste yapısına kuyruk (queue) denir. Bu erişimde First-In-First-Out (FIFO) prensibi vardır. Yani ilk giren eleman, ilk çıkar.

  1. Eleman Ekle (enqueue)

Eleman ekleme işlemi için enqueue (kuyruğa eklemek) terimi kulanılır.

  1. Eleman Çıkar (dequeue)

Eleman çıkarma işlemi için dequeue (kuyruktan çıkarmak) terimi kulanılır.

 

Non-Linear (Doğrusal Olmayan)

            Veri elemanlarını ardışık olarak sıralamaz, belli bir düzende düzenler. Veri elemanları düzenlenmesi veya silinmesi gibi işlemler sırayla yapılmaz. Bu veri yapısı hafızayı verimli kullanır. Tree (Ağaç) ve Graph (Grafik) doğrusal olmayan veri yapılarına örnektir.

 

 

 

 

 

 

 

 

 

 

Tree (Ağaç) yapısı kaynak: https://cdn-acikogretim.istanbul.edu.tr/auzefcontent/20_21_Guz/veri_yapilari/9/index.html

 

 

 

 

 

 

 

 

 

 

Graph (Grafik) yapısı kaynak: https://coimer.medium.com/graph-veri-yap%C4%B1lar%C4%B1-f2a5f3ad330d

 

 

 

Doğrusal ve Doğrusal Olmayan Veri Yapılarının Arasındaki Farkı

  • Doğrusal veri yapısındaki verinin dolaşımı bir anda sadece bir öğeye doğrudan erişilebilir. Doğrusal olmayan veri yapısında, düğümler sırayla ziyaret edilmez.
  • Doğrusal veri yapıları basittir. Doğrusal olmayan karmaşıktır.
  • Doğrusal veri yapıları hafıza kullanımında verimsizdir. Doğrusal olmayan veri yapıları verimlidir.

 

Hangi Veri Yapısı Kullanılmalıdır?

            Bu sorunun genel bir cevabı yoktur. İstenilen duruma göre kullanılacak olan veri yapısı değişmektedir. Eğer projenin hızlı olması isteniyorsa, bellek kullanımı göz ardı edilmek zorundadır. Bellek kullanımı hayati ise, hız göz ardı edilmektedir. En doğrusu ve tercih edileni hız ve bellek gereksiniminin dengeli bir şekilde olmasıdır.

 

Alıntıdır
Paylaş:
Ulam:Nedir?
Önceki Yazı
TP-Link RE190 v5 Datasheet
Sıradaki Yazı
Temel Veri Türleri Nedir?