QUEUE PADA C++
Queue (antrian) adalah operasi pemasukan
data yang hanya diperbolehkan masuk dari sisi belakang dan operasi penghapusan
hanya boleh dilakukan pada sisi depan. Prinsip dari queue sendiri yaitu FIFO
(First In First Out) mirip seperti orang yang sedang mengantri.
Bentuk deklarasi queue pada umumnya
adalah :
#define max 8
typedef struct{
int
data[max];
int
depan;
int
blkg;
}QUEUE;
QUEUE antrian;
Queue mempunya 5 proses operasi yaitu :
1) Create
Untuk
menginisialisasi queue dengan cara meletakkan depan dan blkg pada indeks ke-0.
void create()
{
antrian.depan = 0;
antrian.blkg = 0;
}
2) IsEmpty
Untuk
memeriksa apakah queue kosong.
int IsEmpty()
{
if((antrian.depan>antrian.blkg)
|| (antrian.depan==0) && (antrian.blkg==0))
return 1;
else
return 0;
}
3) IsFull
Untuk
memeriksa apakah queue sudah penuh.
int IsFull()
{
if (antrian.blkg==max)
return 1;
else
return 0;
}
4) Enqueue
Untuk
menambah item di blkg.
void enqueue(int x)
{
if ((antrian.depan == 0)
&& (antrian.blkg == 0))
{
antrian.depan = 1;
antrian.blkg = 1;
}
else
{
antrian.blkg = antrian.blkg + 1;
}
antrian.data[antrian.blkg] = x;
}
5) Dequeue
Untuk
menghapus item dari depan.
void Dequeue()
{
if (q.depan > q.blkg)
{
q.depan = 0;
q.blkg = 0;
}
else
q.depan = q.depan + 1;
}
6) Clear
Untuk
mengosongkan queue.
void
clear()
{
antrian.depan=antrian.blkg=-1;
cout<<”DATA KOSONG”;
}
Agar lebih mudah memahaminya saya akan
berikan source code yang sederhan tetapi tidak sesuai dengan operasi queue di
atas.
Source code :
#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
#define n 5
int Q[n],F,R,X;
void awal()
{
F=0;R=-1;
}
void insertq()
{
if(R<n-1)
{
R++;
Q[R]=X;
}
else
cout<<"DATA
KOSONG";
}
void deleteq()
{
if(F<R+1)
{
X=Q[F];
F++;
cout<<X<<" ";
if((F==R+1)&&(R==n-1))
{
awal();
}
}
else
cout<<"DATA
KOSONG";
}
void main()
{
int pilih;
char jawab;
awal();
jawab='y';
while (jawab=='y' || jawab=='Y')
{
clrscr();
cout<<"------------------------------------------"<<endl;
cout<<"QUEUE"<<endl;
cout<<"------------------------------------------"<<endl;
cout<<"1. INSERT
Data"<<endl;
cout<<"2. DELETE
Data"<<endl;
cout<<"3. EXIT
Aplication"<<endl;
cout<<endl<<"INPUTKAN
PILIHAN : ";
cin>>pilih;
cout<<"------------------------------------------"<<endl;
switch (pilih)
{
case 1:
cout<<"INPUTKAN DATA KE
QUEUE : ";
cin>>X;
insertq();
break;
case 2:
cout<<"DATA DALAM
ANTRIAN YANG DIHAPUS"<<endl;
deleteq();
break;
case 3:
exit;
}
cout<<endl<<"------------------------------------------"<<endl;
cout<<endl<<"APAKAH
AKAN MEMILIH LAGI ? (y/n) ";cin>>jawab;
}
getch();
}
Studi kasus :
1. Insert data ke dalam queue. Dan input data = 21,
kemudian lakukan insert data lagi dengan memilih “y” untuk memilih lagi.
2. Insert data lagi, data yang diinsert = 3, kemudian
lakukan insert data lagi.
3. Insert 1 data lagi dengan nilai = 12. Setelah
diinsert pilih “y” lagi. Setelah ini kita akan lakukan delete data
(mengeluarkan data).
4. Sekarang kita keluarkan satu per satu data yang ada
pada queue, pastikan data yang keluar pertama adalah 21. Kemudian keluarkan
data 3, dan data yang terakhir yaitu 12.
Pilih
“n” untuk selesai.
SEKIAN MATERI QUEUE DARI SAYA MOHON MAAF JIKA ADA
KETIDAKLENGKAPAN MATERI
TERIMA KASIH
0 komentar:
Posting Komentar