Konsep Queue dalam Struktur Data Serta Contoh Program
QUEUE (STRUKTUR DATA)
Queue juga tipe abstrak data atau struktur data linear, dimana elemen pertama
disisipkan dari satu ujung disebut BELAKANG (juga disebut ekor), dan
penghapusan exisiting elemen berlangsung dari ujung disebut sebagai
FRONT (juga disebut kepala ). Hal ini membuat antrian sebagai struktur data FIFO, yang berarti bahwa elemen dimasukkan pertama juga akan dihapus pertama. Proses untuk menambahkan elemen ke dalam antrian disebut Enqueue dan proses penghapusan elemen dari antrian disebut Dequeue. Queue ini tentunya berbeda dengan Stack. Dimana stack atau tumpukan ini juga tidak jauh beda dengan queue.
Fitur dasar Queue
Seperti Stack, Queue juga daftar memerintahkan elemen tipe data yang sama.Antrian FIFO (First Out Pertama) struktur. Setelah elemen baru dimasukkan ke dalam Antrian, semua elemen
dimasukkan sebelum elemen baru dalam antrian harus dihilangkan, untuk
menghilangkan unsur baru. Mengintip () fungsi sering digunakan untuk mengembalikan nilai elemen pertama tanpa dequeuing itu.
Aplikasi Queue
seperti namanya digunakan setiap kali kita perlu memiliki
kelompok objek dalam urutan yang pertama datang, juga keluar pertama
sementara yang lain menunggu di sana berubah, seperti dalam skenario
berikut:
Melayani permintaan pada sumber daya bersama tunggal, seperti printer, penjadwalan tugas CPU dllDalam kehidupan nyata, sistem telepon Call Center akan menggunakan
Antrian, untuk menahan orang-orang menyebut mereka dalam urutan, sampai
perwakilan layanan gratis.Penanganan interupsi dalam sistem real-time. Interupsi ditangani dalam urutan yang sama saat mereka tiba, Pertama datang pertama dilayani.
Implementasi Queue
Antrian dapat diimplementasikan dengan menggunakan Array, Stack atau Daftar Linked. Cara termudah untuk mengimplementasikan antrian adalah dengan menggunakan Array. Awalnya kepala (FRONT) dan ekor (REAR) dari titik-titik antrian di indeks pertama dari array (mulai indeks array dari 0). Seperti kita menambahkan elemen ke antrian, ekor terus bergerak maju, selalu menunjuk ke posisi di mana elemen berikutnya akan dimasukkan, sementara kepala tetap pada indeks pertama.pelaksanaan antrianFitur Antrian |
Ketika
kita menghapus elemen dari antrian, kita bisa mengikuti dua pendekatan
yang mungkin (disebutkan [A] dan [B] dalam diagram di atas). Dalam
[A] pendekatan, kita menghapus elemen di posisi kepala, dan kemudian
satu per satu gerakan semua elemen lain di posisi depan. Dalam pendekatan [B] kita menghapus elemen dari posisi kepala dan kemudian menggerakkan kepala ke posisi berikutnya.
Dalam pendekatan [A] ada overhead menggeser elemen satu posisi ke depan setiap kali kita menghapus elemen pertama. Dalam
pendekatan [B] tidak ada biaya overhead seperti itu, tapi whener kita
menggerakkan kepala satu posisi ke depan, setelah penghapusan elemen
pertama, ukuran pada Antrian berkurang satu ruang setiap kali.
(Baca juga : Pengertian URL, serta fungsi dan cara kerjanya)
(Baca juga : Pengertian URL, serta fungsi dan cara kerjanya)
Contoh Program Queue
/* Below program is wtitten in C++ language */
#define SIZE 100
class Queue
{
int a[100];
int rear; //same as tail
int front; //same as head
public:
Queue()
{
rear = front = -1;
}
void enqueue(int x); //declaring enqueue, dequeue and display functions
int dequeue();
void display();
}
void Queue :: enqueue(int x)
{
if( rear = SIZE-1)
{
cout << "Queue is full";
}
else
{
a[++rear] = x;
}
}
int queue :: dequeue()
{
return a[++front]; //following approach [B], explained above
}
void queue :: display()
{
int i;
for( i = front; i <= rear; i++)
{
cout << a[i];
}
}
#define SIZE 100
class Queue
{
int a[100];
int rear; //same as tail
int front; //same as head
public:
Queue()
{
rear = front = -1;
}
void enqueue(int x); //declaring enqueue, dequeue and display functions
int dequeue();
void display();
}
void Queue :: enqueue(int x)
{
if( rear = SIZE-1)
{
cout << "Queue is full";
}
else
{
a[++rear] = x;
}
}
int queue :: dequeue()
{
return a[++front]; //following approach [B], explained above
}
void queue :: display()
{
int i;
for( i = front; i <= rear; i++)
{
cout << a[i];
}
}
Untuk menerapkan pendekatan [A], Anda hanya perlu mengubah metode dequeue, dan termasuk untuk loop yang akan menggeser semua elemen yang tersisa satu posisi.
(Baca juga : Contoh program record pada pascal)
return a[0]; //returning first element
for (i = 0; i < tail-1; i++) //shifting all other elements
{
a[i]= a[i+1];
tail--;
}
for (i = 0; i < tail-1; i++) //shifting all other elements
{
a[i]= a[i+1];
tail--;
}
Itulah ulasan hari ini tentang Konsep Queue dalam Struktur Data Serta Contoh Program. Harapan saya bermanfaat untuk semuanya, jika ada yang kurang saya mohon maaf. Sekian dan terimakasih !
0 Response to "Konsep Queue dalam Struktur Data Serta Contoh Program"
Post a Comment