![]() |
Resim bulamadım konuya uygun :( |
#include<stdio.h> #include<stdlib.h> // ************************************* // ************************************* // ************************************* // *******Algoritma Uzmanı************** // ************************************* // ************************************* // *******www.algoritmauzmani.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. } } //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(); return 0; }
Etiketler: bağlı liste sona eleman ekleme, linked list sona eleman ekleme