C Listeye Eleman Eklemek ve Listelemek

Categories CPosted on

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

 

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.

This site uses Akismet to reduce spam. Learn how your comment data is processed.