veri yapıları logo

Veri Yapıları Tek Yönlü Bağlı Listeler

Veri yapıları dersinin ilk konusu olan Listeler, günümüzde bir çok algoritma veya yazılım içerisinde kullanılmaktadır. Bağlı Liste, Dairesel Bağlı Liste, Çift Yönlü Bağlı Liste ve Çift Yönlü Dairesel Bağlı Liste olarak 4 başlık altında incelenebilir. Öncelikle neden diziler varken listelere ihtiyaç duyduğumuzu kısa bir şekilde ifade edeyim. Listeler eleman kadar alan kaplamaktadır. Diziler ise başlangıçta kaç eleman alacak şekilde tanımladı iseniz o kadar alan kullansanız da kullanmasanız da yer işgal etmektedir. Listeler ile bu alandan tasarruf sağlanmaktadır ve biz eleman ekledikçe kullanılan alan artmaktadır.

Tek Yönlü Bağlı Listeler

Her eleman(düğüm,node) bir sonraki elemanı gösterir.

Sadece baştan sona ilerleme olur.

Veri yapıları bağlı liste

Son eleman null gösterir. Yeni bir bağlı liste yapısını C dili ile görelim. C dilinde alan oluşturmak için malloc fonksiyonu kullanılır. Aşağıdaki kod yeni bir düğüm(node) oluşturacağımızı ve bunun için hafızadan alan istediğimizi belirtmektedir. Sınavlarda genelde bu kısım verilir daha çok bu düğümün içini doldurmayı sorarlar.

Bu kısımda içini oluşturduğumuz kısım. Hafızadan yeri aldık ama ne yapacağız içine bilgi(veri, data) gireceğiz.

Java dili bağlı liste yapısı:

Tek Yönlü Bağlı Liste Başa Eleman Ekleme

Listelerde ilk durumu gösteren bir başlangıç ifadesi bulunmaktadır. Burada da Baş diye yazdığım kısım listenin başlangıcını gösteren ifadedir. Burada D(node) 8(sonraki elemanın adresi)’i başa ekleyeceğiz.

Veri Yapıları Bağlı Liste Başa Eleman Ekleme

Baş değeri D’nin adresini D ise A’nın adresini göstermesi gerekiyor. Son durumu alta ekliyorum.

Veri yapıları tek yönlü bağlı liste başa eleman ekleme

Java dili ile Başa Ekleme kodu:

Kuyruk = diğer düğümün adresinin tutulduğu kısım.

Tek Yönlü Bağlı Liste Sona Eleman Ekleme

Sona eleman eklerken son değerdeki null değerini silip son elemanın adres kısmına yeni eklenen değerin adresini ekliyoruz. Eklenen elemanın ise adresi null olacaktır.

Tek Yönlü Bağlı Liste Araya Ekleme

Bu durumda ise önceki düğümün kuyruğu yeni eklediğimizin düğümün adresini, yeni eklediğimiz düğümün de kuyruğu sonraki düğümü gösterecektir.

Tek Yönlü Bağlı Liste Sondan Eleman Silme

Bu durumda ise sondan bir önceki düğümün kuyruğunu null yapıyoruz.

Tek Yönlü Bağlı Liste Baştan Eleman Silme

Bu durumda da baş’ın(root) kuyruğunu silinen düğümün bir sonraki olacak şekilde değiştiriyoruz.

Tek Yönlü Bağlı Liste Ortadan Eleman Silme

Bu durumda ise silmek istediğimiz elemandan önceki elemanın kuyruğundaki adresi, silmek istediğimiz elemanın adresine gidecek şekilde değiştiriyoruz.

 

Silme işlemleri ekleme işlemlerine göre daha basit yapıdadır. Ekleme işlemlerini de umarım anlamışsınızdır. Eğer vakit bulabilir isem kod yazmadığımız başlıkların da kodlarını veya görsel olarak ifadelerini ekleyeceğim. Umarım faydalı olmuştur.

Bir cevap yazın