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; }