![]() |
| Linked List Başa Ekleme İşlemi |
#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", °er);
sonaEkle(deger);
}
printf("\n");
yazdir();
printf("\n basa eklemek istediginizi deger?...");
scanf("%d", °er);
basaEkle(deger);
yazdir();
return 0;
}
Etiketler: bağlı listeler başa eleman ekleme, linked list başa eleman ekleme, linked list c kodu, linked list eleman ekleme