Bağlı Liste Oluşturma İşlemi - (Linked List Oluşturma)

linked list oluşturma
Bağlı Liste Düğümü Kodu
Size daha önce Linked List Nedir konusuyla Bağlı Listelere dair bilgi vermiş, Bağlı Liste Çeşitleri konusunda da size anlatacağımız Linked List çeşitleri konularına dair bir anlatım yapmıştık. Bunun da yanında Linked List kodlarına girişmeden önce bize dinamik bellek yönetimi imkanı tanıyan Malloc Fonksiyonu konusuna değinmiştik.

Bu yazımızda artık biraz kod yazalım dedik ve Tek Yönlü Bağlı Liste C kodu oluşturmaya girişelim istedim. Öncelikle şunu belirteyim, bu yazıda yer alacak olan kodlar kullanıcıya çıktı verme amaçlı oluşturulmayacak. Boşuna çalıştırmaya uğraşmayın, temel amacımız Linked List yapısındaki node yani düğümleri oluşturmak ve bunlara değer atamak.

Linked List Düğümü Nasıl Oluşturulur?


struct node{
    int data;
    struct node *next;
};

Yukarıdaki kod yapısına baktığımızda node isminde bir struct yapısı oluşturmuş olduğumuzu görüyoruz. Struct bildiğiniz üzere içerisinde çeşitli değerler tutabildiğimi bir yapıdır. Hatta Nesne Yönelimli Programlama konusundaki Class mantığının temelini oluşturur. Bir nesneye dair bilgileri tuttuğumuzu düşünebilirsiniz. Tabii ki buradaki nesnemiz düğüm yani node.

Peki kodumuzda ne yaptık? int data değişkeniyle düğümümüzde sayısal değerleri tutacağımızı belirttik. Burası kolay, peki struct node *next değişkeni ne yapıyor? Fark ettiyseniz *next isminde bir pointer oluşturduk. Bu pointer kendisinden sonra gelecek olan düğümü işaret eder. Çünkü pointer bir göstericidir, adres saklar. Sakladığı adres de kendisinden sonra gelecek düğümün adresi olacak.

Şimdi Main fonksiyonumuza gelelim ve 3 tane düğüm oluşturalım.

    struct node* baslangic = NULL;
    struct node* ikinci = NULL;
    struct node* ucuncu = NULL;

struct node* dugum_ismi ifadesi dugum_ismi adında bir node oluşturur. biz main fonksiyonu içerisinde baslangic, ikinci ve ucuncu olmak üzere üçtane düğüm oluşturduk ve bunlara başlangıç değeri olarak NULL değeri atadık.

Şimdi Linked List konusunun esas kritik konusuna geliyoruz. Oluşturduğumuz düğümler için hafıza alanı atamalıyız. Bunu bir önceki yazımızda Malloc fonksiyonuyla halledebileceğimizi söylemiştik. (<stdlib.h> kütüphanesini eklemeyi unutmayın!)

    baslangic = (struct node*)malloc(sizeof(struct node));
    ikinci = (struct node*)malloc(sizeof(struct node));
    ucuncu = (struct node*)malloc(sizeof(struct node));

Yukarıdaki üç satırda da üç düğüm için belli bir alan oluşturduk. Artık oluşturulan bu alanları kullanabileceğiz. Peki kullanıp da ne yapacağız? E hadi bir de değerleri ekleyelim :)

    baslangic->data=1;
    baslangic->next=ikinci;
 
    ikinci->data=2;
    ikinci->next=ucuncu;
 
    ucuncu->data = 3;
    ucuncu->next = NULL;

Burada gördüğünüz şey, struct yapısının kullanılmasından başka bir şey değil. Linked List ile alakalı olan nokta, dugum->next değerinin bir sonraki düğümü işaret ediyor olması.

baslangic->next = second; ikinci->next = third; ucuncu->next = NULL

Neden ucuncu->next=NULL derseniz, çünkü oluşturduğumuz yapı tek yönlü bağlı liste yapısıdır. Singly Double List'de son düğümün NEXT değeri her zaman NULL'dür.

Mutlaka Oku!

Bağlı Listeye Eleman Ekleme
Bağlı Listeden Eleman Silme

Etiketler: , , , ,