#include<stdio.h>
#include<stdlib.h>struct Node {
int data;
struct Node * next;
};
struct Node * front=NULL;
struct Node * rear=NULL;
struct Node * temp=NULL;void insert(int data){
// eklenecek eleman için bellekte yer ayırıyoruz
struct Node * ptr = (struct Node * ) malloc (sizeof(struct Node));
ptr->data=data;
// eğer ki başta eleman yok ise
if(front == NULL){
// sondaki eleman eklenecek eleman olur
rear=ptr;
// baştaki eleman da yeni eklenecek eleman olur
front=ptr;
// baştaki eleman son eleman olduğu için NULL gösterir
front->next=NULL;
rear->next=NULL;
}else{
// eğer ki başta eleman var ise artık son elemanden önceki eleman yeni eklenen elemanı gösterir çünkü son eleman olacak
rear->next=ptr;
// son eleman yeni eklenen eleman olur ve
rear=ptr;
// ondan sonraki değer de NULL Gösterir
rear->next=NULL;
}
}void delete(){
if(front==NULL){
printf("Queue is empty!");
}else{
// 2.elemanı temp'e atıyoruz
temp=front->next;
// baştaki elemanı uçuruyoruz
free(front);
// artık 2.eleman 1.eleman oluyor.
front=temp;
}
}
void display(){
// baştaki elemanın değerini i'ye ata sondaki elemana eşit olana kadar döngüye gir ve elemanı yazdır.
if(front==NULL){
printf("Queue is empty!");
}else{
temp=front;
while(temp->next!=NULL){
printf("%d\t",temp->data);
temp=temp->next;
}
printf("%d\n",temp->data);
}
}int main(){
int choice,data;
while(1){
printf("1)Eleman Ekle\n");
printf("2)Eleman Cikar\n");
printf("Secim : ");
scanf("%d",&choice);
switch(choice){
case 1:
printf("Data : ");
scanf("%d",&data);
insert(data);
display();
break;
case 2:
delete();
display();
break;
}
}
return 0;
}