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.