Veri Yapısı Nedir ve Türleri Nelerdir?

Veri:
Veri, algoritmalarda kullanılan ve henüz işlenmemiş olan rakamlar, sayılar ve sembollerden oluşan bilgi parçacıklarıdır. Bilginin işlenmemiş ve ham hali olarak kabul edilirler. Bu veriler, bir bağlam içinde düzenlenip yorumlandığında anlamlı bilgi ve anlayış elde etmemize yardımcı olurlar. Verilerin anlam kazanması için analiz edilmeleri ve uygun yöntemlerle işlenmeleri gerekmektedir. Bilgisayarlar ve veri analizi yöntemleri, bu verilerin değerli bilgiye dönüştürülmesinde önemli bir rol oynarlar ve bu nedenle günümüzde veri, birçok alanda büyük bir öneme sahiptir.
Veri yapısı Türleri:

Array (Diziler):
Aynı türdeki veri elemanlarını sıralı bir şekilde saklamak için kullanılan veri yapısıdır. Elemanlar, indeks numaralarıyla erişilebilir ve her elemanın bir indeks numarası vardır. Diziler, veri düzenini ve hızlı erişimi sağlamak için sıklıkla kullanılır.

Dynamic Arrays (Dinamik diziler) :
Dinamik dizilerde aynı mantığa sahiptir. Yeni elemanlar için yer tutarlar ve yeni bir eleman için boşta yer tutmasından ötürü esnektirler.
Stack:

Stack, LIFO (Last in First out) (En son giren en önce çıkar) mantığına dayanan, elemanlar topluluğundan oluşan bir yapıdır.en son eklenen veri öğesinin, ilk olarak çıkarıldığı anlamına gelir. Stack, verilerin eklenip (push) çıkarıldığı (pop) ve kontrol edildiği bir veri yapısıdır.
🌟Push:
Stack’e yeni bir veri öğesi eklemek için kullanılan işlemdir. Eklenen yeni öğe, en üstteki pozisyona gelir.
🌟Pop:
Stack’den en üstteki veri öğesini çıkarmak için kullanılan işlemdir. Bu, en son eklenen veri öğesini kaldırır ve onu elde eder.
Bir örnek ile anlatmak gerekirse
Taşınırken topladığınız koli kutusu düşünün. İçerisinde kitaplar var ve en, boy olarak koliye tam olarak koyuluyor. Mantıken kolinin altı kapalı ve üst üste koymanız gerekmektedir. Yeni taşındığınız yerde çıkartırken en üstekinden başlarsınız. İşte stack (Yığın) da aynı mantıkta çalışıyor.
Linked List(Bağlı Liste):

Veri elemanlarının bağlantılarla birbirine bağlı olduğu bir veri yapısıdır. Her bir eleman, veriyi taşıyan bir düğüm (node) olarak adlandırılır ve düğümler, tek yönlü veya çift yönlü olarak birbirine bağlanır. Düğümler, veri ve bir sonraki düğümün referansını (adresini) içeren bir yapıya sahiptir.
⭐Düğüm (Node):
Veriyi taşıyan ve bir sonraki düğümün adresini içeren yapıya düğüm denir. Her düğüm, veri ve bir sonraki düğümün referansını tutan bir yapıya sahiptir.
⭐Başlangıç (Head):
Bağlı listenin ilk düğümünün referansını tutan özel bir düğümdür. Bağlı listenin erişiminin başlangıcını temsil eder.
⭐Son (Tail):
Bağlı listenin son düğümünün referansını tutan özel bir düğümdür. Bağlı listeye yeni düğümler eklemek için son düğüme erişim sağlar.
Queue:

“first in, first out” (FIFO) kuralına göre çalışır. Yani, ilk eklenen veri öğesi, ilk çıkarılan veri öğesi olur. Queue, veri elemanlarının bir uçtan eklenip (enqueue) diğer uçtan çıkarıldığı (dequeue) ve kontrol edildiği bir veri yapısıdır.
- Enqueue (Ekleme): Queue’ye yeni bir veri öğesi eklemek için kullanılan işlemdir. Veri öğeleri, en sonda eklenir.
- Dequeue (Çıkarma): Queue’den en önde (en baştaki) veri öğesini çıkarmak için kullanılan işlemdir. Bu, ilk eklenen veri öğesini çıkarır ve onu elde eder.
- Peek (Front): Queue’in en başındaki veri öğesine bakmak için kullanılan işlemdir. Veriyi çıkarmadan sadece veriyi görüntülemeyi sağlar.
- isEmpty: Queue’in boş olup olmadığını kontrol eden işlemdir. Eğer queue boşsa, true değerini döndürür.
Örnek verip anlatmak gerekirse;
- Başlangıçta boş bir koli kutusumuz var ve içine kitaplar koyacağız.
- Kitaplardan A’yı koli kutusuna koyuyoruz. Şimdi koli kutusunun içinde A var. (Push A)
- Sonra B kitabını da koli kutusuna koyuyoruz. Şimdi koli kutusunda sırasıyla A ve B var. (Push B)
- Ardından C kitabını koli kutusuna koyuyoruz. Şimdi koli kutusunda sırasıyla A, B ve C var. (Push C)
- Koli kutusunda üst üste koyulan kitaplardan en üstte C, en altta A olacak şekilde sıralandı.
- Şimdi koli kutusundan kitapları çıkartmaya başlıyoruz. En üstteki kitabı alıyoruz ve çıkartıyoruz. Bu C kitabı. (Pop -> C)
- Sonra B kitabını alıp çıkartıyoruz. (Pop -> B)
- En sonunda da A kitabını alıp çıkartıyoruz. (Pop -> A)
Bu şekilde, koli kutusuna koyduğumuz kitapları en üstten başlayarak çıkartıyoruz. İşte Stack yapısı da aynı mantıkla çalışır. Verileri en üstten ekleyip (Push) en üstten çıkartabiliriz (Pop). Bu nedenle Stack, kitapları koli kutusuna koymak ve çıkartmak gibi bir yapıya sahiptir ve “last in, first out” (LIFO) prensibine göre işlem yapar.
Umarım yazım sizler için faydalı olmuştur, iyi çalışmalar dilerim😊
Kullandığım kaynaklar: