Contoh Program Queue dalam bahasa C++ :
1. Contoh Program Queue : Insert, Delete, View, Clear, Exit.
#include <stdio.h>
#include <conio.h>
#define MAX 6
typedef struct
{
int data [MAX];
int head;
int tail;
}
Queue;
Queue antrian;
void Create()
{
antrian.head=antrian.tail=-1;
}
int IsEmpty()
{
if(antrian.tail==-1)
return 1;
else
return 0;
}
int IsFull()
{
if(antrian.tail==MAX-1)
return 1;
else
return 0;
}
void Enqueue(int data)
{
if(IsEmpty()==1)
{
antrian.head=antrian.tail=0;
antrian.data[antrian.tail]=data;
printf("%d masuk !",antrian.data[antrian.tail]);
void Tampil();
{
if(IsEmpty()==0)
{
for(int i=antrian.head;i<=antrian.tail;i++)
{
printf("%d ",antrian.data[i]);
}
}
else
printf("Data Kosong !\n");
}
}
else
if(IsFull()==0)
{
antrian.tail++;
antrian.data[antrian.tail]=data;
printf("%d masuk !", antrian.data[antrian.tail]);
}
}
int Dequeue()
{
int i;
int e=antrian.data[antrian.head];
for(i=antrian.head;i<=antrian.tail-1;i++)
{
antrian.data[i]=antrian.data[i+1];
}
antrian.tail--;
return e;
}
void Clear()
{
antrian.head=antrian.tail=-1;
printf("Data Clear");
}
void Tampil()
{
if (IsEmpty()==0)
{
for (int i=antrian.head;i<=antrian.tail; i++)
{ printf("%d ",antrian.data[i]);
}
}
else
{
printf("Data Kosong\n");
}
}
void main()
{
int pil;
int data;
Create();
do
{
clrscr();
printf ("\n====================================");
printf ("\n Ujian Akhir Semester (UAS) ");
printf ("\n====================================");
printf ("\n Program Queue ");
printf ("\n====================================");
printf ("\n Nama : Nina Narulita Pande ");
printf ("\n Kelas : TI2E ");
printf ("\n NIM : 11142344 ");
printf ("\n====================================\n\n");
printf ("\n============MENU PILIHAN============\n");
printf ("1. Enqueue\n");
printf ("2. Dequeue\n");
printf ("3. Tampil\n");
printf ("4. Clear\n");
printf ("5. Keluar\n");
printf ("--------------------------------------\n");
printf ("Masukkan Pilihan Anda -> ");
scanf("%d",&pil);
switch(pil){
case 1:
printf("Data : ");
scanf("%d",&data);
Enqueue(data);
break;
case 2:
printf("Elemen yang keluar : %d", Dequeue());
break;
case 3:
Tampil();
break;
case 4:
Clear();
break;
case 5:
clrscr();
gotoxy(28,10);printf(" Present By : ");
gotoxy(25,11);printf("\"Nina Narulita Pandela\"\n");
gotoxy(26,12);printf("\" 11142344\"\n");
gotoxy(23,13);printf("\"Teknik Informatika 2E 2012\"");
break;
}
getch();
} while(pil!=5);
}
2. Contoh Program Queue :
#include <stdio.h>
#include <conio.h>
void main()
{
int cek=0, data[20], x, hapus;
char pil;
do {
clrscr();
printf("1. Tambah Antrian\n");
printf("2. Hapus Antrian\n");
printf("3. Lihat Antrian\n");
printf("4. Keluar\n");
printf("Silahkan masukkan pilihan anda... ");
pil=getche();
if(pil!='1' && pil !='2' && pil !='3' && pil!='4' )
printf("\n\nAnda salah mengetikkan inputan...\n");
else
{
if(pil=='1') //PUSH
{
if(cek==20)
printf("\nAntrian Penuh\n\n");
else
{
printf("\nMasukkan nilai-->");scanf("%i",&x);
data[cek]=x;
cek++;
}}
else
{
if(pil=='2') //POP
{
if(cek==0)
printf("\nAntrian kosong\n\n");
else
{
hapus=data[0];
for(int v=0;v<cek;v++)
data[v]=data[v+1];
data[cek-1]=NULL;
cek--;
printf("\nData dgn nilai=%i terhapus.",hapus);
}
getch();
}
else
{
if(pil=='3') //CEK DATA
{
if(cek==0)
printf("\nAntrian Kosong.\n\n");
else
{
printf("\n");
for(int z=0;z<cek;z++)
{
printf(" | ");
printf("%i",data[z]);
printf(" | ");
}
}
getch();
}
}
}
}
}while(pil!='4');
}
3. Implementasi Queue dengan Double Linked List :
#include <iostream.h>
#include <conio.h>
class Linked_list_Queue
{
private :
struct node
{
int data;
node *next;
};
node *rear;
node *entry;
node *print;
node *front;
public :
Linked_list_Queue();
void Delete();
void Insert();
void print_list();
void show_working();
};
Linked_list_Queue :: Linked_list_Queue()
{
rear=NULL;
front=NULL;
}
//------------------- Insert () ----------------//
void Linked_list_Queue :: Insert()
{
int num;
cout<<"\n\n\n\n\n\t Masukan angka dalam Queue : ";
cin>>num;
entry=new node;
if(rear==NULL)
{
entry->data=num;
entry->next=NULL;
rear=entry;
front=rear;
}
else
{
entry->data=num;
entry->next=NULL;
rear->next=entry;
rear=entry;
}
cout<<"\n\n\t *** "<<num<<" sudah masuk dalam Queue. "<<endl;
cout<<"\n\n\n\t\t pres any key to return to menu. ";
getch();
}
//------------------------------- Delete() ------------------------//
void Linked_list_Queue:: Delete()
{
if(front==NULL)
cout<<"\n\n\n\t *** Error : Queue is empty. \n"<<endl;
else
{
int deleted_element=front->data;
node *temp;
temp=front;
front=front->next;
delete temp;
cout<<"\n\n\n\t *** "<<deleted_element<<"dihapus dari Queue. "<<endl;
}
cout<<"\n\n\n\t\t pres any key to return to Menu. ";
getch();
}
//------------------------- print_list()---------------------//
void Linked_list_Queue::print_list()
{
print=front;
if(print!=NULL)
cout<<"\n\n\n\n\n\t Angka-angka yang ada dalam Queue adalah : \n"<<endl;
else
cout<<"\n\n\n\n\n\t *** Tidak ada yang ditampilkan. "<<endl;
while (print!=NULL)
{
cout<<"\t"<<print->data<<endl;
print=print->next;
}
cout<<"\n\n\n\t\t Pres any key to return to Menu. ";
getch();
}
//----------------- show_working() ------------------//
void Linked_list_Queue:: show_working()
{
char Key=NULL;
do
{
clrscr();
gotoxy(5,5);
cout<<"********** Implementation of Linked List as a Queue **********"<<endl;
gotoxy(10,8);
cout<<"Pilih salah satu menu : "<<endl;
gotoxy(15,10);
cout<<"- Press\ 'I\' to Masukan data dalam Queue"<<endl;
gotoxy(15,12);
cout<<"- Press \'D\' to Hapus data dari Queue"<<endl;
gotoxy(15,14);
cout<<"- Press \'P\' to tampilkan data dari Queue"<<endl;
gotoxy(15,16);
cout<<"- Press \'E\' to Exit"<<endl;
input :
gotoxy(10,20);
cout<<" ";
gotoxy(10,20);
cout<<"Masukan Pilihan : ";
Key=getche();
if(int(Key)==27 || Key=='e' || Key=='E')
break;
else if(Key=='i'|| Key=='I')
Insert();
else if(Key=='d'|| Key=='D')
Delete();
else if (Key=='p' || Key=='P')
print_list();
else
goto input;
}
while(1);
}
//-------------------------------- main() --------------------------- //
int main()
{
Linked_list_Queue obj;
obj.show_working();
return 0;
}