D. Queue (Definisi )
Queue
/ Antrian adalah suatu kumpulan data yang mana penambahan elemen hanya bisa dilakukan pada satu
ujung (disebut dengan sisi belakang atau rear) dan
penghapusan atau pengambilan
elemen dilakukan lewat ujung lain (disebut dengan sisi depan atau front).
Antrian menggunakan
prinsip Pertama Masuk Pertama Keluar – First In First Out (FIFO). Dengan kata lain urutan masuk sama dengan
urutan keluar. Antrian banyak dijumpai
dalam kehidupan sehari-hari. Mobil-mobil yang mengantri digerbang tol untuk membeli karcis tol; orang-orang
yang mengantri di loket untuk membeli karcis
film juga membentuk antrian.
Dibawah ini ialah sebuah
program untuk memasukkan, menghapus, dan mencetak
suatu antrian data yang berupa sting dengan menggunakan queue
source code;
#include <iostream.h>
#includ
#include <conio.h>
#define MAX 10
typedef struct
{
char data[MAX];
char head;
char tail;
} Queue;
Queue antrian;
void Create()
{
antrian.head=antrian.tail=-1;
}
char IsEmpty()
{
if(antrian.tail==-1)
return 1;
else
return 0;
}
char IsFull()
{
if(antrian.tail==MAX-1) return 1;
else return 0;
}
void Enqueue(int data)
{
if(IsEmpty()==1)
{
antrian.head=antrian.tail=0;
antrian.data[antrian.tail]=data;
cout<<"Data
"<<antrian.data[antrian.tail]<<" Masuk!!";
}
else if(IsFull()==0)
{
antrian.tail++;
antrian.data[antrian.tail]=data;
cout<<"Data
"<<antrian.data[antrian.tail]<<" Masuk!!";
}
else if (IsFull() == 1)
{
cout<<"Maaf,
penuh"<<endl;
cout<<data<<" Data
tidak masuk";
}
}
void Dequeue()
{
char i;
char e = antrian.data[antrian.head];
if (antrian.tail == -1)
{
cout<<"Data
Kosong"<<endl;
}
else
{
for(i=antrian.head;i<=antrian.tail-1;i++)
{
antrian.data[i] = antrian.data[i+1];
}
antrian.tail--;
cout<<"Data yang Keluar lebih
dulu = "<<e<<endl;
}
}
void Clear()
{
antrian.head=antrian.tail=-1;
cout<<"Data
dihapus"<<endl;
}
void Tampil()
{
if(IsEmpty()==0)
{
cout<<"Data Dalam
Antrian"<<endl;
cout<<"==========================="<<endl;
cout<<endl;
for(char i=antrian.head;i<=antrian.tail;i++)
{
cout<<"|
"<<antrian.data[i]<<" |";
}
}
else cout<<"Data
Kosong";
}
void main()
{
int pil;
char data;
Create();
do
{
clrscr();
cout<<"Queue data berupa
String"<<endl;
cout<<"=================================="<<endl;
cout<<endl;
cout<<"1. Masukkan
data"<<endl;
cout<<"2. Hapus
data"<<endl;
cout<<"3.
Cetak"<<endl;
cout<<"4. Hapus
semua"<<endl;
cout<<"5.
Keluar"<<endl;
cout<<"Pilihan Anda=
"; cin>>pil;
switch(pil)
{
case 1:
{
cout<<endl;
cout<<"Data = ";
cin>>data;
Enqueue(data);
break;
}
case 2:
{
cout<<endl;
Dequeue();
break;
}
case 3:
{
cout<<endl;
Tampil();
break;
}
case 4:
{
cout<<endl;
Clear();
break;
}
}
getch();
} while(pil!=5);
}
Tampilannya ialah :
Tidak ada komentar:
Posting Komentar