Queue
Queue Struktur Data
Queue (Antrian) adalah suatu bentuk khusus dari list linear dengan
operasi pemasukkan data hanya diperbolehkan pada salah satu sisi yang
disebut sisi belakang/ekor ( Tail) dan operasi penghapusan hanya
diperbolehkan pada sisi lainnya yang disebut sisi depan / kepala (Head)
dari LinkedList.
Prinsip Antrian :
FIFO (First In First Out)
FCFS (First Come First Server)
Deklarasi Queue:
#define max 8
typedef structr {
int data [MAX];
int head;
int tail;
} Queue;
Queue antrian;
Operasi Queue:
Fungsi Create
Digunakan untuk membentuk dan menunjukkan awal terbentuknya suatu Antrean (Queue)
Void Create()
{
antrian head= antrian tail =-1
}
Fungsi Isempty
Untuk memeriksa apakah Antrian penuh atau kosong
Dengan cara memeriksa nilai Tail, jika Tail = -1 maka antrian kosong (empty)
Head adalah tanda untuk kepala antrian (elemen pertama dalam antrian) yang tidak akan berubah-ubah
Pergerakan pada antrian terjadi dengan penambahan elemen antrian kebelakang yaitu menggunakan nilai Tail
int IsEmpty()
{
if(antrian tail ==-1)
return 1;
else
return 0;
}
Fungsi IsFull
Untuk mengecek apakah antrian sudah penuh atau kosong
Dengan cara : Mengecek nilai tail, Jika tail = Max-1 berarti antrian sudah penuh (MAX-1 adalah batas elemen array dalam program C++)
Int IsFull()
{
if (antrian tail == Max-1)
return 1;
else
return 0;
}
Fungsi Enqueue
Untuk menambahkan elemen kedalam Antrian, penambahan elemen selalu dilakukan pada elemen paling belakang
Penambahan elemen selalu menggerakan variabel Tail dengan cara menambahkan Tail terlebih dahulu
void Enqueue (Int data) {
if (IsEmpty () == 1) {
antrian head = antrian tail = 0;
antrian data [antrian tail] = data;
printf ("%d masuk!", antrian data [antrian tail]);
} else
if (IsFull () == 0) {
antrian tail ++;
antrian data [antrian tail] = data;
printf ("%d masuk!", antrian data [antrian tail]);
}
}
Fungsi Dequeue
Digunakan untuk menghapus elemen terdepan (head) dari antrian
Dengan cara : menggeser semua elemen antrian kedepan dan mengurangi Tail dengan 1. Penggeseran dilakukan menggunakan looping.
Int Dequeue () {
Int i;
Int e = antrian data [antrian head];
for (i= antrian head; i<=antrian tail-1; i++) {
antrian data [i] = antrian data [i+1];
}
antrian tail --;
return e;
}
Fungsi Clear
Untuk menghapus elemen-elemen dengan cara membuat Tail dan Head =-1
Penghapusan elemen-elemennya ke nilai -1 sehingga elemen-elemen antrian lagi terbaca sehingga mengembalikan antrian seperti semula.
void Clear () {
antrian head = antrian tail = -1;
printf ("data clear");
}
Prinsip Antrian :
FIFO (First In First Out)
FCFS (First Come First Server)
Deklarasi Queue:
#define max 8
typedef structr {
int data [MAX];
int head;
int tail;
} Queue;
Queue antrian;
Operasi Queue:
- Create : untuk menciptakan dan menginisialisasi Queue dengan cara membuat Head dan Tail=-1.
- Isempty : untuk memeriksa apakah queue kosong
- Isfull : untuk memeriksa apakah queue sudah penuh
- Enqueue : untuk menambahkan item pada posisi paling belakang
- Dequeue : untuk menghapus item dari posisi paling depan
- Clear : untuk mengosongkan queue
Fungsi Create
Digunakan untuk membentuk dan menunjukkan awal terbentuknya suatu Antrean (Queue)
Void Create()
{
antrian head= antrian tail =-1
}
Fungsi Isempty
Untuk memeriksa apakah Antrian penuh atau kosong
Dengan cara memeriksa nilai Tail, jika Tail = -1 maka antrian kosong (empty)
Head adalah tanda untuk kepala antrian (elemen pertama dalam antrian) yang tidak akan berubah-ubah
Pergerakan pada antrian terjadi dengan penambahan elemen antrian kebelakang yaitu menggunakan nilai Tail
int IsEmpty()
{
if(antrian tail ==-1)
return 1;
else
return 0;
}
Fungsi IsFull
Untuk mengecek apakah antrian sudah penuh atau kosong
Dengan cara : Mengecek nilai tail, Jika tail = Max-1 berarti antrian sudah penuh (MAX-1 adalah batas elemen array dalam program C++)
Int IsFull()
{
if (antrian tail == Max-1)
return 1;
else
return 0;
}
Fungsi Enqueue
Untuk menambahkan elemen kedalam Antrian, penambahan elemen selalu dilakukan pada elemen paling belakang
Penambahan elemen selalu menggerakan variabel Tail dengan cara menambahkan Tail terlebih dahulu
void Enqueue (Int data) {
if (IsEmpty () == 1) {
antrian head = antrian tail = 0;
antrian data [antrian tail] = data;
printf ("%d masuk!", antrian data [antrian tail]);
} else
if (IsFull () == 0) {
antrian tail ++;
antrian data [antrian tail] = data;
printf ("%d masuk!", antrian data [antrian tail]);
}
}
Fungsi Dequeue
Digunakan untuk menghapus elemen terdepan (head) dari antrian
Dengan cara : menggeser semua elemen antrian kedepan dan mengurangi Tail dengan 1. Penggeseran dilakukan menggunakan looping.
Int Dequeue () {
Int i;
Int e = antrian data [antrian head];
for (i= antrian head; i<=antrian tail-1; i++) {
antrian data [i] = antrian data [i+1];
}
antrian tail --;
return e;
}
Fungsi Clear
Untuk menghapus elemen-elemen dengan cara membuat Tail dan Head =-1
Penghapusan elemen-elemennya ke nilai -1 sehingga elemen-elemen antrian lagi terbaca sehingga mengembalikan antrian seperti semula.
void Clear () {
antrian head = antrian tail = -1;
printf ("data clear");
}
Komentar
Posting Komentar