Queue
Queue
Queue
Queue adalah bentuk lain dari konsep implementasi linked list. Berbeda dengan Stack,
yang menerapkan konsep LIFO (Last In First Out), Queue justru mempunyai konsep
yang berbeda yakni FIFO (First In First Out).
Setiap data yang pertama kali masuk, dialah yang akan keluar duluan atau di proses
lebih dahulu.
Queue ..
Contoh paling simple dalam kehidupan sehari hari adalah antrian pengunjung bank.
Biasanya saat masuk, kita akan diberi nomor antrian terlebih dahulu sebelum
dipanggil oleh teller.
Kita akan menunggu sampai urutan kita barulah kita dapat bertransaksi di teller.
Ilustrasi dan Operasi pada Queue
Operasi enqueue
Operasi dequeue
Menentukan / memastikan apakah queue dalam keadaan penuh ( is full) atau
kosong (is Empty).
Apabila queue belum penuh, maka data baru akan insert ke pada bagian ujung
pangkal queue, dan jika queue kososng, maka remove dari data bagian ujung
depan queue.
Enqueue
• Operasi ini digunakan untuk menghapus elemen pada antrian. Elemen yang akan
dihapus adalah elemen yang terletak paling depan pada antrian.
• Jika terdapat data pada antrian, maka lakukan penghapusan data dengan cara
memindahkan head (elemen terdepan antrian) ke elemen setelahnya atau membuat
penunjuk front menunjuk ke elemen setelah elemen terdepan pada queue.
Kelebihan penambahan dan penghapusan data dapat dilakukan dengan cepat, yaitu O
(1). Selama memori masih tersedia, penambahan data bisa terus dilakukan. Dengan
demikian tidak ada kekhawatiran terjadinya stack overflow.
Kekurangan Setiap sel tidak hanya menyimpan value saja, melainkan juga pointer ke sel
berikutnya. Hal ini menyebabkan implementasi stack memakai linked list akan
memerlukan memori yang lebih banyak dari pada kalau di implementasikan dengan
Array.Tiap elemen pada linked list hanya bisa diakses dengan cara sekuensial, sehingga
lambat, yaitu O (n).
Queue
Kelebihan
Kekurangan
Data yang terakhir masuk, bila waktu pelayanan habis kemungkinan bisa tidak dilayani.
Full Source code queue
#include<stdio.h>
else
#include<conio.h>
{
#include<iostream>
cout<<"ANTRIAN PENUH";
#include<stdlib.h>
}
#define n 3
}
using namespace std;
void deleteq()
int q[n], f, r, x; //hanya menampilkan satu data terdepan
//pakai while kalau mau menampilkan semua data antrian
void awal() {
{ if(f<r+1)
f=0; {
r=-1; x=q[f];
} f=f+1;
cout<<x;
void insert() if((f==r+1) && (r==n-1))
{ {
if (r<n-1)
awal();
{ }
r=r+1; }
else
q[r]=x;
}
lanjutan
{ cout<<"MASUKKAN BILANGAN : ";
cout<<"ANTRIAN KOSONG"; cin>>x;
} insert();
} }
else {
int main() cout<<"ANTRIAN PENUH";
{ }
int pilih; goto atas;
awal(); break;
atas: case 2 :
case 1 : break;
}
if(r<n-1)
getch();
{
}
Thank
You