Queue merupakan kumpulan data di mana penambahan data dilakukan di belakang, dan penghapusan dilakukan pada elemen yang berada di depan. Prinsip dasar antrian adalah FIFO (First In First Out).
Komponen dalam Queue yaitu :
– enqueue
– dequeue
Implementasi queue dengan array
#include <iostream>
#define maks 5
using namespace std;
class Queue{
friend ostream& operator << (ostream&, const Queue&);
public :
Queue();
int penuh(int);
int kosong(int);
void cetak();
void enqueue(char);
char dequeue();
private :
int banyak;
char A[5];
};
ostream& operator << (ostream& out, const Queue& z)
{
cout <<"\nIsi Queue:";
for (int i=0; i<z.banyak; i++)
out << z.A[i] << " ";
}
Queue::Queue(){
banyak = 0;
for (int i=0; i<5; i++)
A[i]=’0′;
}
int Queue::penuh(int z)
{
return z==5?1:0;
}
int Queue::kosong(int z)
{
return z==0?1:0;
}
void Queue::cetak()
{
cout <<"\nIsi Queue:"<<endl;
for (int i=0; i<banyak; i++)
cout <<A[i]<<" ";
}
void Queue::enqueue(char x)
{
cout <<"\nElemen:" <<x<<"–>Masuk"<<endl;
if (penuh(banyak)) cout <<"queue penuh";
else if(A[0]==’0′){
A[0]=x;
banyak++;
}
else{
for (int i=banyak; i>=0; i–)
A[i+1]=A[i];
A[0]=x;
banyak++;
}
}
char Queue::dequeue()
{
char temp=A[–banyak];
cout <<"\nDelete elemen–>" <<temp;
A[banyak]=’0′;
return temp;
}
int main()
{
Queue q;
cout<<"Program Queue menggunakan array";
cout <<endl;
for (char c=’a’; c<‘d’; c++)
{
q.enqueue(c);
cout <<q;
}
char p=q.dequeue();
q.cetak();
cout<<endl;
system("PAUSE");
return 0;
}
<pre>[/code]
Keluaran program :
Elemen : amasuk
Isi Queue : a
Elemen:bmasuk
Isi Queue : b a
Elemen : cmasuk
Isi Queue : c b a
Delete elemena
Isi queue : c b