RSS

Queue menggunakan Array

31 Okt

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

 
Tinggalkan komentar

Ditulis oleh pada Oktober 31, 2010 in Struktur data

 

Tag:

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

 
%d blogger menyukai ini: