Queue (antrian) adalah barisan elemen yang apabila elemen ditambah maka penambahannya berada di posisi belakang (rear) dan jika dilakukan pengambilan elemen
dilakukan di elemen paling depan (front). Oleh karena itu, queue bersifat FIFO (first in first out).
Operasi-operasi
1. Create : Operasi untuk menciptakan dan inisialisasi queue (fungsi inisialisasi)
2. isempty : Operasi pemeriksaan queue kosong (fungsi kosong)
3. isfull : Operasi pemeriksaan queue penuh (fungsi penuh).
4. Dequeue : proses pengambilan elemen di posisi depan
5. Enqueue : proses penambahan elemen di posisi belakang
6. clear : operasi untuk mengosongkan queue
Fungsi Create
Digunakan untuk membentuk dan menunjukan awal terbentuknya suatu antrian/queue
1. Create : Operasi untuk menciptakan dan inisialisasi queue (fungsi inisialisasi)
2. isempty : Operasi pemeriksaan queue kosong (fungsi kosong)
3. isfull : Operasi pemeriksaan queue penuh (fungsi penuh).
4. Dequeue : proses pengambilan elemen di posisi depan
5. Enqueue : proses penambahan elemen di posisi belakang
6. clear : operasi untuk mengosongkan queue
Fungsi Create
Digunakan untuk membentuk dan menunjukan awal terbentuknya suatu antrian/queue
deklarasi dalam c++
void create( ){Fungsi isempty
antrian.head=antrian.tail=-1;
}
Fungsi isempty digunakan untuk memeriksa apakan keadaan queue tidak
memiliki elemen. Fungsi isempty didapatkan dengan memeriksa field belakang
dari queue. Jika field belakang bernilai 0 maka berarti queue kosong dan jika
tidak 0 maka berarti queue mempunyai elemen.
pemeriksaan nilai belakang dilakukan dengan membandingkannya
dengan nilai -1. Jika nilai belakang bernilai -1 maka queue kosong (true) dan jika
lebih dari -1 berarti queue tidak kosong (false).
deklarasi dalam c++
int kosong(TQueue Q)Fungsi isfull
{
if (Q.belakang==-1)
return 1;
else
return 0;
}
Fungsi isfull berguna untuk memeriksa apakah suatu queue telah penuh. Fungsi
ini diperlukan ketika proses enqueue. Fungsi ini akan bernilai benar (true) jika
field belakang sama dengan nilai maks_queue jika tidak sama dengan berarti
queue belum penuh.
perbandingan yang dilakukan adalah bukan dengan maks_queue
tetapi dengan nilai maks_queue-1.
deklarasi dalam c++
int penuh(TQueue Q)Fungsi Enqueue
{
if(Q.belakang==Q.maks_queue-1)
return 1;
else
return 0;
}
Proses enqueue adalah proses untuk penambahan di posisi belakang.
Penambahan ini dilakukan jika kondisi queue tidak penuh. Jika keadaan masih
kosong, maka field depan dan belakang bernilai 1 tetapi jika sudah mempunyai
elemen maka yang nilai belakang harus bertambah 1. Kemudian data baru
disimpan di array pada posisi belakang.
deklarasi dalam c++
void enqueue(TQueue *Q, int data) { if(!penuh(*Q)) { if(empty(*Q) { Q->depan=0; Q->belakang=0; } else Q->belakang++; Q->antrian[Q->belakang]=data; } else printf("Queue Telah Penuh\n"); }
Fungsi Dequeue
Operasi dequeue adalah proses pengambilan elemen queue. Tentunya elemen
yang diambil selalu dari elemen pertama (1). Setelah elemen pertama diambil,
maka akan diperlukan proses pergeseran elemen data setelah elemen data yang
diambil (dari posisi ke-2 sampai posisi paling belakang), dan kemudian posisi
belakang akan dikurangi 1 karena ada data yang diambil.
deklarasi dalam c++
int dequeue(TQueue *Q)Fungsi Clear.
{
int data,i;
if(!kosong(*Q))
{
data=Q->antrian[Q->depan];
for(i=0;i<=Q->belakang-1;i++)
Q->antrian[i]=Q->antrian[i+1];
Q->belakang--;
return data;
}
else
{
printf("Queue Kosong.\n");
return 0;
}
}
Operasi clear adalah operasi untuk mengahapus elemen elemen antrian dengan cara membuat tail dan head =-1.penghapusan antrian antrian sebenarnya tidak menghapus arraynya,namun hanya mengeset indek pengaksesanya ke nilai -1.sehingga elemen elemen antrian tidak lagi terbaca sehingga mengembalikan antrian seperti keadaan semula.
deklarasi dalam c++
void clear( ){
antrian.head=antrian.tail=-1;
printf("data clear");
}
0 komentar:
Posting Komentar