You are on page 1of 1

//==================================================fifo funtion================

=======
int N,in,out,avl;
void **table;
/*init queue*/
void fifoinit (int size) {
avl=0; in=0;out=0;
N=size;
table=(void**)malloc(N*sizeof(void*));
}
/*free memmory*/
void fifodestroy() {
int i;
if(!fifoempty()) free(table);
else{
for(i=out;i<in;i++){
free(table[i]);
}
free(table);
}
}
/*
empty queue = 1 else 0*/
int fifoempty() {
return(avl==0);
}
/*insert element*/
int fifoenter(void *next)
{
table[in]=next;
avl++;
in=(in+1)%N;
return(1);
}
/*return next element*/
void* fifoget(){
void* get;
if (avl>0) {
get=table[out];
out=(out+1)%N;
avl--;
return(get);
}
}
//=========================================================fifo end=============
=============

You might also like