C Programlama dilinde listeler başlı başına bir konu olmakla birlikte gerekli anlatımı şuradan bulabilirsiniz. Bu yazıda ise C programlama dilinde listeye eleman ekleme ve listeyi yazdırma konusunda örnek gösterilecektir.
NOT : Örnekte veriler listeye tek tek eklenmekte ve her ekleme sonunda listeye eklenen sayılar gösterilmektedir. İstediğiniz taktirde for döngüsü ile listeyi arttırabilirsiniz. Bu örnek başlangıç için verilmiştir.
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
typedef struct node{
int data;
node *next;
};node *np=NULL;
int veri_yaz(){
if(np->next==NULL){
return -1;
}
int result = np->next->data;
node *temp = np;
np=np->next;
free(temp);
return result;
}
void ekle(int data){
if(np==NULL){
np = (node*) malloc(sizeof(node));
np->next=NULL;
}
np->data = data;
node * yeni = (node * )malloc(sizeof(node));
yeni->next = np;
np=yeni;
}
void yaz(){
printf("\n");
node *temp = np->next;
while(temp!=NULL){
printf("%d -> ",temp->data);
temp=temp->next;
}
}
int main(){
printf("Listeye Degerleri Girin");
printf("\n");
int a,b,c;
printf("1. Degeri Gir : ");
scanf("%d",&a);
ekle(a);
printf("2. Degeri Gir : ");
scanf("%d",&b);
ekle(b);
printf("3. Degeri Gir : ");
scanf("%d",&c);
ekle(c);
printf("\n");
yaz();
printf("\n");
printf("\n3. Deger -> %d ",veri_yaz());
yaz();
printf("\n2. Deger -> %d ",veri_yaz());
yaz();
printf("\n1. Deger -> %d ",veri_yaz());
yaz();
printf("\nSon -> %d ",veri_yaz());
yaz();
//Sona geldiği için -1 döndürüyor
getch();
return 0;
}

