cara membuat queue dengan array di c

Queue dengan array cukup mudah dibanding dengan linked list,berikut ada yang mau saya sharing kan, bagaimana membuat queue dengan array. kalau anda ingin mencoba nya siapkan dulu compiler c nya:

Code Program

-----------------------------------------------------------------

#include"stdio.h"
#include"stdlib.h"
#define MAX 5

typedef struct{
char data[MAX];
int rear;
int front;
int jumlah;
}queue;

void inisial(queue *q)
{
q->front=0;
q->jumlah=0;
q->rear=0;
}

void enqueue(char x,queue *q)
{
if(q->jumlah==MAX){
puts("data penuh");
}

else{
q->data[q->rear]=x;

//rumus circular queue
q->rear=((q->rear)+1)%MAX;
(q->jumlah)++;
}
}

char dequeue(queue *q)
{
char temp;
if(q->jumlah==' '){
puts("tak ada data yang di dequeue");
return 0;}
else{
temp=q->data[q->front];
q->front=((q->front)+1)%MAX;//CIRCULAR QUEUE
(q->jumlah)--;
return temp;
}
}

main()
{ queue antrian;
char pil,x,jawab;
int i,n;
inisial(&antrian);
do{
puts("\t====================================================");
puts("\t\tPROGRAM QUEUE DENGAN ARRAY");
puts("\t====================================================\n");
puts("<<MENU>>");
puts("--------");
printf("1.enqueu\n2.dequeue\n3.exit\n");
fflush(stdin);
printf("\n input pilihan: ");
pil=getchar();

if(pil=='1'){
for(i=0;i<MAX;i++){
fflush(stdin);
printf("masukan karakter:");
scanf("%c",&x);
enqueue(x,&antrian);
}

}
else if(pil=='2'){
fflush(stdin);
printf("dequeue berapa kali:");
scanf("%d",&n);
puts("\nDATA YANG KE DEQUEUE\n");
for(i=0;i<n;i++){
printf("%c ",dequeue(&antrian));
}

}
else if(pil=='3')
exit(1);
fflush(stdin);
printf("ingin kembali ke menu: ");
jawab=getchar();
}while(jawab='y'||jawab=='Y');
}
-----------------------------------------------------------------
berikut lah code dari saya semoga bermanfaat selamat mencoba.