Queue(Kuyruk) ilk giren ilk çıkar (FIFO- First In First Out) mantığıyla çalışan ve bellek üzerinde kurulan bir mekanizmadır.Static uygulamasını diziler üzerinde göreceğiz hemen bakalım.
#include<stdio.h>
#include<stdlib.h>#define BOY 5
// dizimizi belirttik
struct Queue{
int front; // baş
int rear; // son
int array[BOY];
};
struct Queue queue;
// ekleme işlemimiz
void insert(int data){
if(queue.front==-1){
// eğer ki başta eleman yok ise front'u sıfır yap
queue.front=0;
}
// ve sondaki elemanı bir arttır
queue.rear++;
// sondaki elemanın index değerine göre datayı aktar
queue.array[queue.rear]=data;
}void delete(){
// baştaki elemanın değeri -1 yada baştaki değer sondaki değerden büyükse demek ki kuyruk boştur
if(queue.front==-1 || queue.front>queue.rear){
printf("Queue is empty!!\n");
}
// kuyruk dolu ise baştaki elemanın değerini bir arttır baştaki elemanı çıkar demek.
else{
queue.front++;
}
}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.
for(int i = queue.front;i<=queue.rear;i++){
printf("%d\t",queue.array[i]);
}
}
int main(){
// baştaki değeri -1 yaptık eleman ilk eklediğimide 0 olacak
queue.front= -1;
// sondaki değeri -1 yaptık eleman eklediğimizde 1 arttıracaz
queue.rear= -1;
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;
}