Pengertian Queue (Antrean)
Secara harfiah Queue dapat diartikan sebagi antrean. Queue sering kita temui dalam kehidupan sehari hari sebagai sebuah antrian di loket. Dalam sebuah antrean yang datang lebih dahulu maka dia akan dilayani terlebih dahulu.
Queue merupakan kumpulan data dengan penambahan data hanya melalui satu
sisi, yaitu belakang (tail) dan penghapusan data hanya melalui sisi
depan (head). Berbeda dengan stack yang bersifat LIFO maka queue
bersifat FIFO(First In First Out), yaitu data yang pertama masuk akan
keluar terlebih dahulu dan data yang terakhir masuk akan keluar
terakhir.
Struktur data queue memiliki operasi-operasi sebagai berikut :
EnQueue Memasukkan data ke dalam antrian
DeQueue Mengeluarkan data terdepan dari antrian
Clear Menghapus seluruh antrian
IsEmpty Memeriksa apakah antrian kosong
IsFull Memeriksa apakah antrian penuh
Operasi-Operasi Queue dengan Linear Array
EnQueue
Fungsi EnQueue berfungsi untuk memasukkan elemen ke dalam queue.
DeQueue
Berfungsi untuk mengambil sebuah elemen dari queue.
Clear
Berfungsi untuk menghapus semua lemen dalam queue dengan jalan
mengeluarkan semua elemen tersebut satu per satu hingga queue kosong
dengan menggunakan fungsi DEQueue.
IsEmpty
Berfungsi untuk mengecek apakah queue sudah kosong atau masih
berisi data.
IsFull
Berfungsi untuk mengecek apakah queue sudah penuh atau masih bias
menampung data.
Contoh Program Queue:
#include <iostream.h>
#include <conio.h>
main()
{
int cek=0, data[20], x, hapus;
char pil;
do
{
clrscr();
cout<<"1. Tambah Antrian"<<endl;
cout<<"2. Hapus Antrian"<<endl;
cout<<"3. Lihat Antrian"<<endl;
cout<<"4. Keluar"<<endl;
cout<<endl;
cout<<"masukkan pilihan anda = ";
pil=getche();
cout<<endl;
if(pil!='1' && pil !='2' && pil !='3' && pil!='4' )
cout<<"salah mengetikkan inputan";
else
{
if(pil=='1') //PUSH
{
if(cek==20)
cout<<"Antrian Penuh";
else
{
cout<<"Masukkan nilai = ";
cin>>x;
data[cek]=x;
cek++;
}
}
else
{
if(pil=='2') //POP
{
if(cek==0)
cout<<"Antrian kosong";
else
{
hapus=data[0];
for(int v=0;v<cek;v++)
data[v]=data[v+1];
data[cek-1]=NULL;
cek--;
cout<<"Data dengan nilai "<<hapus<<" terhapus";
}
getch();
}
else
{
if(pil=='3') //CEK DATA
{
if(cek==0)
cout<<"Antrian Kosong";
else
{
cout<<endl;
for(int z=0;z<cek;z++)
cout<<" "<<data[z];
}
}
getch();
}
}
}
}
while(pil!='4');
}
#include <conio.h>
main()
{
int cek=0, data[20], x, hapus;
char pil;
do
{
clrscr();
cout<<"1. Tambah Antrian"<<endl;
cout<<"2. Hapus Antrian"<<endl;
cout<<"3. Lihat Antrian"<<endl;
cout<<"4. Keluar"<<endl;
cout<<endl;
cout<<"masukkan pilihan anda = ";
pil=getche();
cout<<endl;
if(pil!='1' && pil !='2' && pil !='3' && pil!='4' )
cout<<"salah mengetikkan inputan";
else
{
if(pil=='1') //PUSH
{
if(cek==20)
cout<<"Antrian Penuh";
else
{
cout<<"Masukkan nilai = ";
cin>>x;
data[cek]=x;
cek++;
}
}
else
{
if(pil=='2') //POP
{
if(cek==0)
cout<<"Antrian kosong";
else
{
hapus=data[0];
for(int v=0;v<cek;v++)
data[v]=data[v+1];
data[cek-1]=NULL;
cek--;
cout<<"Data dengan nilai "<<hapus<<" terhapus";
}
getch();
}
else
{
if(pil=='3') //CEK DATA
{
if(cek==0)
cout<<"Antrian Kosong";
else
{
cout<<endl;
for(int z=0;z<cek;z++)
cout<<" "<<data[z];
}
}
getch();
}
}
}
}
while(pil!='4');
}
Hasil eksekusi program:
Tidak ada komentar:
Posting Komentar