Linear Queue
Struktur Data - Pertemuan 6
"Linear Queue"
(Queue) adalah suatu bentuk khusus dari List Linier dengan operasi penyisipan (Insertion) hanya diperbolehkan pada salah satu sisi, yang disebut sisi Belakang (Rear) dan operasi penghapusan (Deletion) hanya diperbolehkan pada sisi lainnya yang disebut sisi Depan (Front) dari List.
Ilustrasi :
Misal n = 10
R (Rear) : menunjuk pengantri paling belakang/paling akhir masuk
R = 6, artinya : Pernah masuk 7 pengantri dengan urutan masuk Q[0], Q[1], Q[2], Q[3], Q[4], Q[5], Q[6]
F = 3, artinya : Sudah keluar sebanyak 3 pengantri dengan urutan keluar Q[0], Q[1], Q[2]
Prinsip Linear Queue yaitu FIFO (First In First Out) atau FIFS (First In First Serve)
Proses pada Linear Queue :
- Awal (Inisialisasi)
- Insert (Sisip, Masuk, Simpan, Tulis)
- Delete (Hapus, Keluar, Ambil, Dilayani)
- Reset (Kembali ke Keadaan Awal)
Kondisi Antrian :
SOAL.
Buatlah suatu program Animasi Antrian dengan 4 buah pilihan : INSERT, DELETE, CETAK ANTRIAN, QUIT.
Jika dipilih INSERT : program akan meminta user untuk menginput sebuah karakter yang akan dimasukan kedalam antrian
Jika dipilih DELETE : maka karakter pertama masuk akan dikeluarkan dari antrian
Jika dipilih CETAK ANTRIAN : komputer menampilkan karakter yang ada pada antrian
Jika dipilih QUIT : program keluar
Program :
#include<iostream>
#include<conio.h>
#include<stdlib.h>
#define n 10
using namespace std;
void Insert();
void Delete();
void Cetakantrian();
void Inisialisasi();
int PIL,F,R;
char PILIHAN [1],HURUF;
char Q[n];
main ()
{
Inisialisasi();
do
{
cout<<" ANIMASI ANTRIAN"<<endl;
cout<<"=============="<<endl;
cout<<"1. INSERT"<<endl;
cout<<"2. DELETE"<<endl;
cout<<"3. CETAK ANTRIAN"<<endl;
cout<<"4. QUIT"<<endl;
cout<<"PILIHAN : "; cin>>PILIHAN;
PIL=atoi(PILIHAN);
switch (PIL)
{
case 1:
Insert ();
break;
case 2:
Delete();
break;
case 3:
Cetakantrian();
break;
default:
cout<<"TERIMA KASIH"<<endl;
break;
}
cout<<"press any key to continue"<<endl;
getch();
system("cls");
}
while (PIL<4);
}
void Insert()
{
if(R<n-1)
{
cout<<endl<<"MASUKAN 1 HURUF : ";
cin>>HURUF;
Q[++R]=HURUF;
}
else
cout<<"Antrian Penuh"<<endl;
}
void Cetakantrian()
{
if(F<R+1)
{
for (int i=F;i<=R;i++)
cout<<"Antrian["<<i<<"] = "<<Q[i]<<endl;
}
else
cout<<"Antrian Kosong"<<endl;
}
void Delete()
{
if(F<=R+1)
{
HURUF=Q[F];
Q[F++]='\0';
cout<<"Data yang diambil : "<<HURUF<<endl;
if(F==n)
Inisialisasi();
}
else
cout<<"Antrian Kosong"<<endl;
}
void Inisialisasi()
{
F=0;
R=-1;
}
Komentar
Posting Komentar