- Pengertian Queue
Queue
adalah kumpulan data dengan penambahan data hanya melalui satu sisi,yaitu sisi
blakang dan penghapusan data hanya melalui sisi depan. Queue merupakan salah
satu struiktur data yang memiliki sistemkerja FIFO (Fisrt In First Out). Dimana
data yang pertama kali masuk maka data tersebut akan keluar lebih dulu.
Di dalam Queue mempunyai dua kata kunci yaitu Head dan Tail.
Head adalah penanda urutan paling depan. Tail adalah penanda urutan paling
belakang.
- Deklarasi Queue
Variabel
yang digunakan adalah data, head, tail. Nilai dari head dan tail dimulai dari
-1 yang menandakan Queue kosong. Contoh Queue menggunakan maksimal 5 data.
- Operasi Queue
- IsEmpty : Mengecek apakah Queue kosong atau tidak.
- IsFull : Mengecek apakah Queue sudah penuh atau tidak.
- EnQueue : Menabah data di Queue.
- Dequeue : Mengambil data dari Queue.
- Clear : Menghapus data dalam elemn.
- View : Meliahat data dalam antrian.
- IsEmpty
IsEmpty
digunakan untuk mengecek apakah Queue Kosong atau tidak. Indikator bahwa Queue
kosong adalah nilai dari head dan tail adalah -1.
- IsFull
IsFull
digunakan untuk mengecek apakah antrian sudah penuh atau tidak. Indicator kalau
Queue penuh adalah nilai tail = max-1
- Enqueue
Enqueue
digunakan untuk memasukkan data kedalam Queue. Sebelum memasukkan data ke dalam
antrian , harus dipastikan apakah antrian penuh atau tidak. Kalau antrian tidak
penuh maka dilakukan pengecekan apakah head sudah berada di nilai 0 atau belum.
- Dequeue
Dequeue
digunakan untuk mengambil data yang sudah masuk di urutan pertama. Sehingga
Tinggal membaca data yang ada di posisi head.cek apakah queue kosong atau
tidak, jika ada isinya ,setelah data di ambil data dibelakangnya digeser ke
depan.
- Clear
Clear
digunakan untuk menghapus data di dalam queue. Caranay mengubah nilai pada head
dan tail menjadi -1.
- View
View
digunakan untuk melihat data yang didalam Queue. Caranya dengan mambaca data
pada indeks yang terdapat diantara head sampai tail.
Contoh Program QUEUE
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
#define n 10
int Q[n],L,R,x;
void awal()
{
R=-1;L=0;
}
void insertkiri()
{
cout<<"Inputkan data :";cin>>x;
if (L>0)
{
L--;
Q[L]=x;
}
else
cout<<"Antrian penuh kiri";
}
void insertkanan()
{
cout<<"Inputkan data :";cin>>x;
if (R<n-1)
{
R++;
Q[R]=x;
}
else
cout<<"Antrian penuh kiri";
}
void deletekiri()
{
if (L<R+1)
{
x=Q[L];
L++;
cout<<x;
}
else
cout<<"Antrian kosong";
}
void deletekanan()
{
if (L<R+1)
{
x=Q[R];
R--;
cout<<x;
}
else
cout<<"Antrian kosong";
}
void main()
{
int pilih;
char jawab;
awal();
jawab='y';
while ((jawab=='y')||(jawab=='Y'))
{
clrscr();
cout<<"1.INSERT KIRI"<<endl;
cout<<"2.INSERT KANAN"<<endl;
cout<<"3.DELETE KIRI"<<endl;
cout<<"4.DELETE KANAN"<<endl;
cout<<"5.EXIT"<<endl;
cout<<"Inputkan pilihan :";cin>>pilih;
switch (pilih)
{
case 1:
insertkiri();
break;
case 2:
insertkanan();
break;
case 3:
deletekiri();
break;
case 4:
deletekanan();
break;
case 5:
exit;
break;
}
cout<<endl<<"Ulangi proses lagi ? [y/t]";
cin>>jawab;
}
}
Referensi : masiyak c++ Tips
#include <conio.h>
#include <stdlib.h>
#define n 10
int Q[n],L,R,x;
void awal()
{
R=-1;L=0;
}
void insertkiri()
{
cout<<"Inputkan data :";cin>>x;
if (L>0)
{
L--;
Q[L]=x;
}
else
cout<<"Antrian penuh kiri";
}
void insertkanan()
{
cout<<"Inputkan data :";cin>>x;
if (R<n-1)
{
R++;
Q[R]=x;
}
else
cout<<"Antrian penuh kiri";
}
void deletekiri()
{
if (L<R+1)
{
x=Q[L];
L++;
cout<<x;
}
else
cout<<"Antrian kosong";
}
void deletekanan()
{
if (L<R+1)
{
x=Q[R];
R--;
cout<<x;
}
else
cout<<"Antrian kosong";
}
void main()
{
int pilih;
char jawab;
awal();
jawab='y';
while ((jawab=='y')||(jawab=='Y'))
{
clrscr();
cout<<"1.INSERT KIRI"<<endl;
cout<<"2.INSERT KANAN"<<endl;
cout<<"3.DELETE KIRI"<<endl;
cout<<"4.DELETE KANAN"<<endl;
cout<<"5.EXIT"<<endl;
cout<<"Inputkan pilihan :";cin>>pilih;
switch (pilih)
{
case 1:
insertkiri();
break;
case 2:
insertkanan();
break;
case 3:
deletekiri();
break;
case 4:
deletekanan();
break;
case 5:
exit;
break;
}
cout<<endl<<"Ulangi proses lagi ? [y/t]";
cin>>jawab;
}
}
Referensi : masiyak c++ Tips
Tidak ada komentar:
Posting Komentar