C Listeye Eleman Eklemek ve Listelemek

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

Web sitemizde size en iyi deneyimi sunabilmemiz için çerezleri kullanıyoruz. Bu siteyi kullanmaya devam ederseniz, bunu kabul ettiğinizi varsayarız.