Queue (Antrian)
Queue dalam bahasa Indonesia berarti “antrian”. Sehingga tidak heran jika pernah mendengar atau pernah sekilas mengetahui queue. Pada dasarnya struktur data queue ini tidak jauh berbeda dengan stack. Karena pada beberapa bagian, queue memiliki kemiripan dengan stack. Hanya saja,
struktur data queue ini memiliki sifat atau prinsip FIFO (First In First Out), yang artinya “pertama masuk, pertama keluar”. Operasi dalam struktur data queue yang paling sering digunakan ada 2 macam. Pertama adalah Dequeue atau menghapus dari queue, dan kedua adalah enqueue atau proses
memasukan/menambah queue. representasi antrian Seperti yang sekarang kita pahami bahwa dalam antrian, kita mengakses kedua ujungnya dengan alasan berbeda.
Contoh Queue
Seperti pada tumpukan, antrian juga dapat diimplementasikan menggunakan Array, Linked-list, Pointer dan Structures. Demi kesederhanaan, kami akan mengimplementasikan antrian menggunakan array satu dimensi.
Operasi Dasar
Operasi antrian mungkin melibatkan menginisialisasi atau mendefinisikan antrian, menggunakannya, dan kemudian menghapusnya sepenuhnya dari memori. Di sini kita akan mencoba memahami operasi dasar yang terkait dengan antrian -
enqueue () - menambahkan (menyimpan) item ke antrian.
dequeue () - menghapus (mengakses) item dari antrian.
Lebih sedikit fungsi yang diperlukan untuk membuat operasi antrian yang disebutkan di atas efisien. Ini adalah -
peek () - Mendapat elemen di bagian depan antrian tanpa menghapusnya.
isfull () - Periksa apakah antrian penuh.
isempty () - Periksa apakah antrian kosong.
Dalam antrian, kami selalu mengeluarkan data (atau mengakses), diarahkan oleh penunjuk depan dan saat memunculkan (atau menyimpan) data dalam antrian, kami mengambil bantuan dari penunjuk belakang.
Pertama mari kita belajar tentang fungsi antrian yang mendukung -
mengintip ()
Fungsi ini membantu untuk melihat data di bagian depan antrian. Algoritma fungsi peek () adalah sebagai berikut -
Algoritma
mulai prosedur mengintip
kembali antrian [depan]
prosedur akhir
Implementasi fungsi peek () dalam bahasa pemrograman C -
Contoh
int peek () {
kembali antrian [depan];
}
penuh ()
Karena kami menggunakan array dimensi tunggal untuk mengimplementasikan antrian, kami cukup memeriksa pointer belakang untuk mencapai pada MAXSIZE untuk menentukan bahwa antrian penuh. Jika kami mempertahankan antrian dalam daftar tertaut melingkar, algoritme akan berbeda. Algoritma fungsi isfull () -
Algoritma
mulai prosedur penuh
jika belakang sama dengan MAXSIZE
kembali benar
lain
kembali salah
berakhir jika
prosedur akhir
Implementasi fungsi isfull () dalam bahasa pemrograman C -
Contoh
bool isfull () {
if (belakang == MAXSIZE - 1)
kembali benar;
lain
return false;
}
kosong ()
Algoritma fungsi isempty () -
Algoritma
mulai prosedur kosong
jika depan kurang dari MIN ATAU depan lebih besar dari belakang
kembali benar
lain
kembali salah
berakhir jika
prosedur akhir
Jika nilai depan kurang dari MIN atau 0, ini memberitahu kita bahwa antrian belum diinisialisasi, maka kosong.
Inilah kode pemrograman C -
Contoh
bool isempty () {
if (depan <0 || depan> belakang)
kembali benar;
lain
return false;
}
Operasi Enqueue
Antrian memelihara dua pointer data, depan dan belakang. Oleh karena itu, operasinya relatif sulit diimplementasikan daripada tumpukan.
Langkah-langkah berikut harus diambil untuk memasukkan (memasukkan) data ke dalam antrian -
Langkah 1 - Periksa apakah antrian penuh.
Langkah 2 - Jika antrian penuh, menghasilkan kesalahan overflow dan keluar.
Langkah 3 - Jika antrian tidak penuh, tambahkan penunjuk belakang untuk menunjuk ruang kosong berikutnya.
Langkah 4 - Tambahkan elemen data ke lokasi antrian, di mana bagian belakang menunjuk.
Langkah 5 - kembalikan kesuksesan.
Masukkan Operasi
Terkadang, kami juga memeriksa untuk melihat apakah antrian diinisialisasi atau tidak, untuk menangani situasi yang tidak terduga.
Algoritma untuk operasi enqueue
prosedur enqueue (data)
jika antrian penuh
return overflow
berakhir jika
belakang ← belakang +1
mengantri [belakang] ← data
kembali benar
prosedur akhir
Implementasi enqueue () dalam bahasa pemrograman C -
Contoh
int enqueue (data int)
if (isfull ())
return 0;
belakang = belakang + 1;
antrian [belakang] = data;
return 1;
prosedur akhir
Operasi Dequeue
Mengakses data dari antrian adalah proses dua tugas - mengakses data di mana bagian depan menunjuk dan menghapus data setelah akses. Langkah-langkah berikut diambil untuk melakukan operasi dequeue -
Langkah 1 - Periksa apakah antrian kosong.
Langkah 2 - Jika antrian kosong, menghasilkan kesalahan underflow dan keluar.
Langkah 3 - Jika antrian tidak kosong, akses data di mana depan menunjuk.
Langkah 4 - Menambahkan pointer depan untuk menunjuk ke elemen data berikutnya yang tersedia.
Langkah 5 - Kembalikan kesuksesan.



Tidak ada komentar:
Posting Komentar