Jumat, 19 April 2013

Queue(POP,PUSH,CETAK)


#include <conio.h>
#include <stdio.h>
#define MAX 5
typedef struct
{
int elm[MAX];
int head;
int tail;
}tElmList;
void Initial(tElmList *isiQueue);
void Insert(tElmList *isiQueue);
void Delete(tElmList *isiQueue);
int isEmpty(tElmList isiQueue);
int isFull(tElmList isiQueue);
void Display(tElmList isiQueue);
int main()



{
tElmList queueList;
int answer;
char jawab;
Initial(&queueList);
do{
printf("QUEUE\n\tMenu Queue By Bella Yulianita:\n\t1.Untuk mereset Ulang,");
printf("\n\t2.Masukkan Data,");
printf("\n\t3.Keluarkan Data,");
printf("\n\t4.Tampilkan data/Print,");
printf("\n\nSilahkan Masukkan pilihan anda:");
scanf("%d",&answer);
if(answer==1)
{
Initial(&queueList);
}
if(answer==2)
{
do{
Insert(&queueList);
do{
printf("Apakah anda Ingin menambah data lagi(Y\N):\n");
jawab=getch();
printf("\n");
}while ((jawab!='N')&&(jawab!='n')&&(jawab!='Y')&&(jawab!='y'));
}while ((jawab=='Y')||(jawab=='y'));
}
if(answer==3)
{
printf("Data sebelum dihapus:");
Display(queueList);
Delete(&queueList);
printf("\n\nData setelah dihapus:");
Display(queueList);
}
if(answer==4)
{
Display(queueList);
}
do{
printf("\nKembali ke menu utama(Y\N):");
jawab=getch();
}while((jawab!='N')&&(jawab!='n')&&(jawab!='Y')&&(jawab!='y'));
}while ((jawab=='Y')||(jawab=='y'));
return 0;
}
void Initial(tElmList*IsiQueue)
{
(*IsiQueue).head=0;
(*IsiQueue).tail=-1;
}
void Insert(tElmList*IsiQueue)
{
int nilai;
if(isFull((*IsiQueue))==0)
{
printf("Maaf tidak bisa diisi lagi(Antrian sudah penuh).\n");
}
else
{
(*IsiQueue).tail=((*IsiQueue).tail+1)%MAX;
printf("\nMasukkan Nilai:");
scanf("%d",&nilai);
(*IsiQueue).elm[(*IsiQueue).tail]=nilai;
}
}
void Delete(tElmList *IsiQueue)
{
if(isEmpty((*IsiQueue))==0)
{
printf("\n\nMaaf tidak ada yang bisa di delete.");
}
else if((*IsiQueue).head==(*IsiQueue).tail)
{
Initial(&(*IsiQueue));
}
else
{
(*IsiQueue).head=((*IsiQueue).head+1)%MAX;
}
}
int isEmpty(tElmList IsiQueue)
{
if(IsiQueue.tail==-1)
{
return(0);
}
return(1);
}
int isFull(tElmList IsiQueue)
{
if(((IsiQueue.tail+1)%MAX==IsiQueue.head)&&(IsiQueue.tail!=-1))
{
return(0);
}
return(1);
}
void Display(tElmList IsiQueue)
{
int i;
if(isEmpty(IsiQueue)==0)
{
printf("\ntelah kosong.");
}
else if(IsiQueue.head>IsiQueue.tail)
{
printf("\nhead<<");
for(i=IsiQueue.head;i<=(IsiQueue.tail+MAX);i++)
{
printf("%2d",IsiQueue.elm[i%MAX]);
}
printf(">>tail");
}
else
{
printf("\nhead<<");
for(i=IsiQueue.head;i<=IsiQueue.tail;i++)
{
printf("%2d",IsiQueue.elm[i]);
}
printf(">>tail");
}
}
outputnya :

0 komentar:

Posting Komentar

© Bella Yulianita 2012 | Blogger Template by Enny Law - Ngetik Dot Com - Nulis