QUEUE
Pengertian
Queue adalah salah satu struktur data yang sering digunakan dalam pemrograman. Queue merupakan antrian data yang hanya dapat diakses pada ujung depan atau ujung belakangnya.Data yang pertama kali dimasukkan ke dalam queue akan menjadi data yang pertama kali diambil atau dikeluarkan dari queue.Queue dapat diibaratkan seperti antrian orang yang menunggu untuk melakukan suatu tindakan.
Karakteristik
- FIFO (First In First Out): Data yang pertama kali dimasukkan ke dalam queue akan menjadi data yang pertama kali diambil atau dikeluarkan dari queue.
- Enqueue: Menambahkan data ke dalam queue.
- Dequeue: Mengambil data dari queue.
- Front: Menunjukkan data yang berada pada ujung depan queue.
- Rear: Menunjukkan data yang berada pada ujung belakang queue.
Queue sering digunakan dalam pemrograman untuk menyelesaikan masalah yang membutuhkan urutan data yang spesifik.Contoh penggunaan queue adalah dalam pengolahan data yang membutuhkan urutan waktu, seperti pengolahan data sensor atau pengolahan data transaksi
Dalam pemrograman, queue dapat diimplementasikan menggunakan array atau linked list.Implementasi queue menggunakan array lebih sederhana dan cepat, sedangkan implementasi queue menggunakan linked list lebih fleksibel dan dapat menyesuaikan ukuran queue secara dinamis
Queue merupakan struktur data yang berguna dalam pemrograman karena memungkinkan pengolahan data yang efisien dan terstruktur.Dalam pengembangan perangkat lunak, pemahaman tentang queue sangat penting untuk memastikan kinerja program yang optimal dan efisien.
Ilustrasi
Front dan rear adalah dua pointer yang digunakan dalam queue untuk menunjukkan posisi ujung depan (front) dan ujung belakang (rear) dari queue.Front menunjukkan posisi data yang akan diambil atau dikeluarkan dari queue, sedangkan rear menunjukkan posisi data yang akan dimasukkan ke dalam queue
Ketika queue kosong, nilai dari front dan rear adalah -1.Ketika queue kosong, nilai dari front dan rear adalah -1.Ketika data baru dimasukkan ke dalam queue, nilai dari rear akan bertambah satu. Ketika data diambil atau dikeluarkan dari queue, nilai dari front akan bertambah satu
Berikut adalah contoh penggunaan front dan rear dalam queue:
Pemakaian Queue Pada Program
public class Queue {
int SIZE = 5;
int items[] = new int[SIZE];
int front, rear;
Queue() {
front = -1;
rear = -1;
}
// check if the queue is full
boolean isFull() {
if (front == 0 && rear == SIZE - 1) {
return true;
}
return false;
}
// check if the queue is empty
boolean isEmpty() {
if (front == -1)
return true;
else
return false;
}
// insert elements to the queue
void enQueue(int element) {
// if queue is full
if (isFull()) {
System.out.println("Queue is full");
}
else {
if (front == -1) {
// mark front denote first element of queue
front = 0;
}
rear++;
// insert element at the rear
items[rear] = element;
System.out.println("Insert " + element);
}
}
// delete element from the queue
int deQueue() {
int element;
// if queue is empty
if (isEmpty()) {
System.out.println("Queue is empty");
return (-1);
}
else {
// remove element from the front of queue
element = items[front];
// if the queue has only one element
if (front >= rear) {
front = -1;
rear = -1;
}
else {
// mark next element as the front
front++;
}
System.out.println( element + " Deleted");
return (element);
}
}
// display element of the queue
void display() {
int i;
if (isEmpty()) {
System.out.println("Empty Queue");
}
else {
// display the front of the queue
System.out.println("\nFront index-> " + front);
// display element of the queue
System.out.println("Items -> ");
for (i = front; i <= rear; i++)
System.out.print(items[i] + " ");
// display the rear of the queue
System.out.println("\nRear index-> " + rear);
}
}
public static void main(String[] args) {
// create an object of Queue class
Queue q = new Queue();
// try to delete element from the queue
// currently queue is empty
// so deletion is not possible
q.deQueue();
// insert elements to the queue
for(int i = 1; i < 6; i ++) {
q.enQueue(i);
}
// 6th element can't be added to queue because queue is full
q.enQueue(6);
q.display();
// deQueue removes element entered first i.e. 1
q.deQueue();
// Now we have just 4 elements
q.display();
}
}Dan Outputnya Seperti ini
Antrian kosong Masukkan 1 Masukkan 2 Masukkan 3 Masukkan 4 Masukkan 5 Antrian penuh Indeks depan-> 0 Barang -> 1 2 3 4 5 Indeks belakang-> 4 1 Dihapus Indeks depan-> 1 Barang -> 2 3 4 5 Indeks belakang-> 4



Komentar
Posting Komentar