Queue atau antrian. Pengertian antrian pada system computer
sama dengan antrian yang kita alami sehari-hari seperti antrian pelanggan yang
ingin membayar barang di kasir, antrian kendaraan yang ingin melewati jalan
tol. Aturan dasar pada antrian adalah hanya pelanggan yang ada di depan meja
kasir lah yang akan dilayani dan jika ada pelanggan yang baru datang maka dia
harus mengantri dari belakang antrian, sehingga queue memiliki sifat FIFO(First
In First Out).
Queue adalah sebuah array yang bertipe data yang sama yang
memiliki 2 buah variable yaitu ‘head’ dan ‘tail’ yang berfungsi sebagai penanda
ujung-ujung dari sebuah queue. Proses penambahan data pada queue dinamakan
‘Enqueue’ dan pengurangan data di sebut ‘Dequeue’. Dan sama juga seperti stack,
dimana ada proses pengecekan apakah queue itu kosong sebelum di ambil(IsEmpty)
atau queue itu penuh sebelum ditambahkan data baru(IsFull).
Contoh coding queue
#include<iostream.h>
#include
<stdio.h>
#include
<conio.h>
typedef
struct
{
int data
[6];
int head;
int tail;
}
Queue;
Queue antri;
void
Create()
{
antri.head=antri.tail=-1;
}
int kosong()
{
if(antri.tail==-1)
return 1;
else
return 0;
}
int penuh()
{
if(antri.tail==6-1)
return 1;
else
return 0;
}
void
Enqueue(int data)
{
if(kosong()==1)
{
antri.head=antri.tail=0;
antri.data[antri.tail]=data;
void show();
{
if(kosong()==0)
{
for(int i=antri.head;i<=antri.tail;i++)
{
cout<<antri.data[i];
}
}
else
cout<<"Data
Anda Kosong !\n";
}
}
else
if(penuh()==0)
{
antri.tail++;
antri.data[antri.tail]=data;
}
}
int
Dequeue()
{
int i;
int e=antri.data[antri.head];
for(i=antri.head;i<=antri.tail-1;i++)
{
antri.data[i]=antri.data[i+1];
}
antri.tail--;
return e;
}
void clear()
{
antri.head=antri.tail=-1;
cout<<"Data
sudah diclearkan";
}
void show()
{
if (kosong()==0)
{
for (int
i=antri.head;i<=antri.tail; i++)
{
cout<<antri.data[i]<<" ";
}
}
else
{
cout<<"Data Anda Kosong\n";
}
}
void main()
{
int pil;
int data;
Create();
do
{
clrscr();
printf
("\n======== MENU ========\n");
printf
(" 1. Enqueue\n");
printf
(" 2. Dequeue\n");
printf
(" 3. show\n");
printf
(" 4. Destroy\n");
printf
(" 5. Keluar\n");
printf
("======================\n");
printf
("Masukkan Pilihan Anda : ");
cin>>pil;
switch(pil)
{
case 1:
cout<<"Masukan Data : ";
cin>>data;
Enqueue(data);
break;
case 2:
cout<<"Elemen yang keluar : "<< Dequeue();
break;
case 3:
show();
break;
case 4:
clear();
break;
case 5:
clrscr();
break;
}
getch();
}
while(pil!=5);
}
|
Source : Data Structures Using C++ by DS Malik
0 komentar:
Posting Komentar