Home / Veri Yapıları / Bağlı Liste (Linked List) – Sondan Eleman Silme

Bağlı Liste (Linked List) – Sondan Eleman Silme

Başlı Listelerde Eleman silme işlemleri 3 kategoride incelenebilir. Bunlar Baştan eleman silme, aradan eleman silme ve sondan eleman silme şeklindedir. Biz bu yazımızda Bağlı Listelerde sondan eleman silme işlemini anlatacağız.

Sondan eleman silme işleminde dikkat edilimesi gereken nokta tek yönlü bağlı liste kullandığımızdan ötürü sondan bir önceki düğümü bulmamız gerektiğidir. Biz eğer traverse yaparken sonuncu düğümü bulursak (tek yönlü olduğu için) bir önceki düğümü bulamayız. Bu yüzden sondan bir önceki düğümü bulmamız gereklidir. Aşağıya bakalım

2 => 4 => 6 => 8 => NULL

Yukarıdaki bağlı listede sondan eleman silmeye kalkarsak 8 düğümünü değil bir önceki düğümü bulmalıyız. Peki nasıl buluruz? Biz normalde while (temp-> != NULL) diyerek sondaki düğümü bulabiliyorduk. Burada ise temp->next->next != NULL şartı ile 6 sayısını buluruz.

Peki bulduktan sonra ne yapacağız. İki işlem yaparız, temp düğümünün 6 sayısını tuttuğunu farz edersek temp->next = NULL dediğimizde artık 6 sayısını tutan düğüm son düğümümüz olur. Ancak 8 sayısını tutan düğüm ise hafızada yer işgal etmeye devam eder.

Bu durumda temp->next = NULL demeden önce free(temp->next) deyip ardından temp->next = null diyebiliriz. Aşağıdaki kod örneğine bakabilirsiniz.

Bağlı Liste Sondan Eleman Silme C Kodu


void deleteLast()
{
    if(start == NULL)
    {
        printf("\n Your List is EMPTY");
    }
    else
    {
        temp = start;
        if(start->next == NULL)
        {
            free(start);
            start = NULL;
        }
        else
        {
            while(temp->next->next != NULL)
            {
                temp = temp->next;
            }
            struct node* cukubik = temp->next;
            free(cukubik);
            temp->next = NULL;
        }


    }


}

Bağlı Liste Sondan Eleman Silme Video

Bir cevap yazın

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