(QUEUE )
Jenis struktur data antrian sering digunakan
untuk menstimulasikan keadaan dunia nyata.
Antrian banyak dijumpai dalam kehidupan sehari-
hari. Misal : antrian registrasi mahasiswa, tiket
kereta api dan lain-lain.
Pengertian Antrian :
Adalah suatu kumpulan data yang mana
penambahan data / elemen hanya dapat
dilakukan pada sisi belakang sedangkan
penghapusan / pengeluaran elemen dilakukan
pada sisi depan.
Keluar Masuk
A B C
Depan Belakang
Keluar Masuk
A B C D E
Depan Belakang
Hapus / keluarkan 1 elemen dari antrian
Keluar Masuk
B C D E
Depan Belakang
Depan = 1
Antrian ( Q ) Belakang = 0
Blk = Blk + 1
Untuk melakukan operasi pada antrian dapat dilakukan dg
beberapa cara :
Cara 1 :
1. Operasi penambahan elemen ke dalam antrian :
a. Belakang := Belakang + 1;
misal. Tambahkan 1 elemen baru (x) = A
Belakang := Belakang + 1
:= 0 + 1
:= 1
Antrian (Q)
Depan = 1
Belakang = 1
B. Q[Belakang]:=x; Antrian (Q)
Q[1]:= A
Depan = 1
Belakang = 1
Y := Q[depan] ;
Depan := Depan + 1 ;
example :
- Hapus/keluarkan 1 elemen dari antrian
Y := Q[Depan]; C Belakang = 3
B
Y := Q[1];
A Depan = 1
Y := A;
C Belakang = 3
B
Depan = 1
Depan := Depan + 1;
:= 1 + 1;
:= 2
C Belakang = 3
B Depan = 2
- Hapus/keluarkan lg utk 2 elemen berikutnya dr antrian
yaitu keluarkan elemen B Depan = 2+1=3 , Belakang =
3
C Depan = 3+1=4 , Belakang = 3
C Belakang = 3 , Depan=3
keluarkan B keluarkan C
Kelemahan cara 1 :
elemen baru tdk bisa ditambahkan lagi, karena nilai
belakang = maks_elemen (antrian penuh) walaupun masih
ada tempat / lokasi antrian yg kosong.
Contoh Program
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#define max 10
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;
}
cout<<"=====================================";
cout<<endl;
for(int i=antrian.head;i<=antrian.tail;i++)
{
cout<<"| " <<antrian.data[i]<<" |";
}
}
else
{
cout<<"Ga ada antrian... Data kosong";
}
}
void main()
{
int pil;
int data;
create();
do
{
clrscr();
cout<<"Implementasi Antrian dengan Struct"<<endl;
cout<<"==========================================";
cout<<endl;
cout<<"1. Enqueue"<<endl;
cout<<"2. Dqueue "<<endl;
cout<<"3. Print "<<endl;
cout<<"4. Clear "<<endl;
cout<<"5. Exit "<<endl;
cout<<"Masukkan pilihan anda : ";
cin>>pil;
switch(pil)
{
case 1:
{
cout<<endl;
cout<<"Data = ";
cin>>data;
Enqueue(data);
break;
}
case 2:
{
cout<<endl;
Dequeue();
break;
}
case 3:
{
cout<<endl;
tampil();
break;
}
case 4:
{
cout<<endl;
clear();
break;
}
}
getch();
}
while(pil!=5);
}