Queue(kuyruk)dan statik olarak yer ayırıp, veri ekleme ve okuma yapacağız.
Queue(kuyruk) bellekte First In First Out kuralı vardır. Yani veriyi okumak
istersek ilk girilen değer ilk okunur. Bu sefer sadece main.c ile değil
oluşturacağımız 2 dosya ile daha çalışacağız.
main.c, queuestatic.c(bellekten yer alma ve veri ekleme),
queuestatic.h(fonksiyonların deklarasyonları) dosyalarımız olacak.
main.c
////sol tarafta projecten projenin adına sağ tıklayıp new file yapıyoruz sonra //queuestatic.c ve queuestatic.h oluşturuyoruz #include <stdio.h> #include <stdlib.h> #include "queuestatic.h" int i=0; int sayi=0; int main(int argc, char *argv[]) { for(i=0;i<5;i++) { printf("sayi gir:"); scanf("%d",&sayi); add(sayi); //add fonksiyonuna sayilari gönderiyoruz } while(!empty()) { printf("%d",get());//getle okuma yapıyoruz } return 0; }
queuestatic.c
#include <stdio.h> #include <stdlib.h> #include "queuestatic.h" int kuyruk[5];//kuyruk 5 elemanlı int bas=0; //kuyruğun başı int son=0; //kuyruğun sonu void add(int veri) { if(son<5) { kuyruk[son++]=veri; //ekmek kuyruğu gibi düşünürsek gelen sona geçer //sonra indis artar. } } int get() { if(bas<5) { return kuyruk[bas++]; //okuma işleminde de ilk giren ilk çıktığından //baştan başlayarak 1 arta arta işlem gerçekleşir } } int empty() { return bas==son; }
queuestatic.h
void add(int veri); //kullandığımız fonksiyonların deklarasyonları int get(); int empty();