Linked List Başa Eleman Ekleme - (Bağlı Listeler başa eleman ekleme)

Linked List Başa Eleman Ekleme C Kodu

bağlı listeler başa eleman ekleme
Linked List Başa Ekleme İşlemi

Çok basit bir fonksiyon ile bu işlemi halledebiliriz. Öncelikli olarak Linked List Sona Eleman Ekleme C Koduna sadece bir fonsiyon ekleyeceğiz. Ekleyeceğimiz fonksiyona parametre olarak ekleyeceğimiz sayıyı gireceğiz.

void basaEkle(int veri)
{
    struct node* bas=NULL; 
    bas = (struct node*)malloc(sizeof(struct node));
    bas->data = veri;
    bas->next = start;
    start = bas;
}

struct node* bas=NULL; : düğümü ekleyeceğimiz sayının düğümüdür. Başa gelecektir.
bas = (struct node*)malloc(sizeof(struct node)); düğümümüze hafızadan yer ayırdık
bas->data = veri; gönderdiğimiz sayıyı bas düğümünün data değişkenine atıyoruz.
bas->next = start; En önemli satır burası. Eski başlangıç değerimiz bu işlemle ikinci eleman oluyor
start = bas; Bu adımla birlikte artık başlangıç değeri eklediğimiz değer oluyor. 

Ben sizinle tüm kodu paylaşıyorum. İçerisinde Sona Eleman Ekleme C kodu da bulunuyor, menüye gerekli eklemeleri yaptım. Kolay gelsin;

Linked List Başa Ekleme C Kodu



#include<stdio.h>

#include<stdlib.h>



// *************************************

// *************************************

// *************************************

// ****Algoritma Uzmanı*****************

// *************************************

// *************************************

// **algoritmauzmani.blogspot.com*******

// *************************************

// *************************************

// *************************************





//dugum olusturuyoruz

struct node

{

    int data; //düğüm içerisindeki değeri taşıyacak

    struct node *next; // sonraki düğümü gösteren pointer değeri

};



struct node* start = NULL;  // başlangıç düğümü için özel start düğümü

struct node* temp = NULL;  //  Elimizdeki değeri tutmak için geçici olarak kullanacağımız düğüm

struct node* q = NULL;    //   Son düğümü bulmak için kullanacağımız düğüm





// Bu fonksiyon sayesinde sona düğüm ekliyoruz.

void sonaEkle(int veri)

{

    temp = (struct node*)malloc(sizeof(struct node)); // temp düğümü için alan oluşturduk

    temp->data = veri; // Temp düğümüne fonksiyondan aldığımız data değişkenini atadık

    temp->next = NULL; // Temp Düğümü sonraki hiçbir düğümü işaret etmeyecek.



    if(start == NULL) //Eğer Start düğümü NULL ise

        start = temp; //start düğümüne temp düğümünü atıyoruz.

    else

    {

        // Burası tamamen algoritmauzmanı.com adresinde anlattığımız Linked List Traversal işlemi

        q = start;

        while(q->next!=NULL)

        {

            q = q->next;

        }

        q->next = temp; // Son düğümü buluyoruz, onun next pointerına başta oluşturduğumuz temp değerini atıyoruz. Çünkü bu sona atama işlemi.

    }



}



//Linked List Başa eleman Ekleme Fonksiyonu bu

void basaEkle(int veri)

{

    struct node* bas=NULL; //başa ekleyeceğimiz eleman için düğüm oluşturduk

    bas = (struct node*)malloc(sizeof(struct node)); // alan ayırdık

    bas->data = veri; // düğüme veri değerini atadık

    bas->next = start; // start değeri ikinci eleman oldu

    start = bas; // eklediğimiz düğüm ilk eleman oldu

}





//ekrana linked list elemanlarımızı yazdıran fonksiyon

void yazdir()

{

    q = start;

    while(q->next!=NULL)

    {

        printf("==>%d", q->data);

        q = q->next;

    }

        printf("=>%d", temp->data); //while döngüsüyle elemanları bastırırken son elemanı basmaz, bu yüzden temp değerini ayrı bastırıyorum.

}







int main()

{



    int i, adet, deger, deger1, deger2;

    printf("kac adet bagli liste elemani gireceksiniz?"); //Kullanıcıdan kaç adet değer gireceğini alıyoruz

    scanf("%d", &adet);



    for(i=0; i<adet; i++)

    {

        printf("\n %d. sayiyi girin .... ", i+1);

        scanf("%d", &deger);

        sonaEkle(deger);

    }

    printf("\n");

    yazdir();



    printf("\n basa eklemek istediginizi deger?...");

    scanf("%d", &deger);

    basaEkle(deger);

    yazdir();





    return 0;

}

Etiketler: , , ,