RSS

Arsip Harian: Oktober 31, 2010

Queue menggunakan Array

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 inci Struktur data

 

Tag: