Home / Veri Yapıları / Bağlı Listelerde Baştan Eleman Silme

Bağlı Listelerde Baştan Eleman Silme

Bir önceki yazımızda Bağlı Liste Sondan Eleman Silme işlemini görmüştük. Bu yazımızda Bağlı Liste Baştan eleman silme işleminin nasıl olduğuna bakacağız.

Baştan eleman silme dendiğinde bilmemiz gereken önemli bir unsur var. Bildiğiniz üzere biz bağlı listelerdeki başlangıç elemanını özel bir değişkenle elimizde tutuyoruz. Baştan eleman sildiğimizde bu değişkenin değişmesi gerekiyor.

11 => 22 => 33 => 44 => NULL

yukarıdaki bağlı liste yapısında 11 elemanını silmeye kalkalım. Eğer normal bir biçimde silersek hata alırız. Bunun sebebi 11 elemanının start düğümünde bulunmasıdır. Biz baştan bir eleman sildiğimizde 2. eleman ilk eleman olur. Bu yüzden 2. elemanı elimizde tutmamız gerekir.

struct node* temp = start->next

dersek 22 düğümünü tutan düğümü temp değişkenine atamış oluruz. Şimdi işimiz kolay, free komutu ile rahatlıkla elemanımızı sileceğiz.

free(start);

start = temp;

Evet işlem tamam. free(start) ile eski birinci elemanı sildik. start düğümüne de ikinci (22) elemanı atadık. Böylelikle rahat bir silme işlemi gerçekleştirdik. Aklınıza şu takılabilir, free komutunu kullanmadan yalnızca start = temp deseydik olmaz mıydı diye. Evet aslında teknik olarak listemiz doğru hale gelirdi, ancak elemanı fiziksel olarak silmemiş, yalnızca listeyi maniple etmiş olurduk. free komutu ile silme işlemi gerçekleştirerek ram’den de eleman silme işlemini yapmış olduk.

Bağlı Liste Baştan Eleman Silme C Kodu


void deleteFirst()
{
    if(start != NULL)
    {
        if(start->next != NULL)
        {
            struct node* temp2 = start;
            start = start->next;
            free(temp2);
        }
        else
        {
            free(start);
            start = NULL;
        }
    }
    else
    {
        printf("\nThere is no item to be deleted, Please add item...");
    }

 

Bağlı Liste Baştan Eleman Silme Video

Bir cevap yazın

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