C DERS 27: QUEUE (KUYRUK) STATIC

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();