"Enter"a basıp içeriğe geçin

Bağlı Liste(Linked List)

Merhaba, Bağlı liste her elemanın ayrı bir nesne olarak tutan dogrusal bir veri yapısıdır. Array’ler static yapıdayken, Bağlı listeler dynamic yapıdadır. Arraylere yeni bir veri eklerken zorluk çekebiliriz ama bağlı liste kullanırsak istediğimiz yere istediğimiz veriyi ekleyebiliriz. Bağlı listelerde eleman sayısı kesin değildir, istediğimiz şekilde bağlı listeye eleman ekleyebilir veya çıkartabiliriz. Bağlı listede elemanın bulunduğu yere node(düğüm) diyoruz.Eğer en son Node’da isek onun next’i NULL’ı göstermelidir. Array yerine Bağlı liste kullanmanın dezavantajları da olabilir, bunlardan biri Arrayler istediğimiz nesneye erişmek için sadece o elemanın nerede olduğunu işaret(point) etmemiz lazım ama bağlı listelerde o elemana ulaşmak için en baş noktandan başlayarak taramamız lazım. Bu yazıda Bağlı liste’ye eleman ekleme ve çıkarma işlemi yapmaya çalışacağım.

Ben C programlama dilini kullanarak Bağlı Liste örneği yapmaya çalışacağım. Projemizi oluşturduktan sonra gerekli kütüphaneleri ekliyoruz ve ayrıca stdlib.h kütüphanesini ekliyoruz ve bu sayede malloc kullanarak hafızada yer oluşturabiliyoruz. Bir node yapısı oluşturup bu yapı içerisinde bir veri ve daha sonra nereyi işaret edeecğini göstereceği aynı tipte bir pointer oluşturuyorum ve main fonksiyonu içerisinde ana kök’ü(root) oluşturuyorum. Bu root’un ne kadar yer tutacağını malloc fonksiyonu ile ayırtıyorum ve data değerini veriyorum. Her zaman node’un next’inde değer olmayacak ise NULL’ı göstermeliyiz.

 

 

 

Ekleme işlemini yapmak için node döndüren bir fonksiyon yazıyorum bu fonksiyon içerisinde eğer node boş gelmiş ise onu root olarak atıyorum eğer boş değil ise değerine bakarak büyük veya küçük olarak node’ları birbirine bağlıyorum.

Sürekli tekrar tekrar printf yazarak dönmek yerine bir tane fonksiyon yazıyorum ve bu fonksiyon sayesinde bağlı listedeki elemanları ekrana yazdırıyorum.

Main fonksiyonu içerisinde ise şu kodlar var;

 

 

 

Ekleme işlemini de yaptıktan sonra sadece silme işlemini yapan fonksiyonu yazmamız gerekiyor. Bu fonksiyonda yine node tipinde bir obje döndürecek. Silinecek dosyayı değerinden alıp silmeye çalışacağız. Silme işlemi yazmamız gereken kod;

Main fonksiyonunu tekrar düzenlediğimizde;

 

 

 

 

Soru ve görüşlerinizi e-mail veya yorum olarak belirtirseniz sevinirim.

İlk Yorumu Siz Yapın

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir