#include <iostream>
#include <conio.h>
#define max 10
using namespace std;
typedef struct
{
int data[max];
int head;
int tail;
}Queue;
Queue antrian;
void create()
{
antrian.head=antrian.tail=-1;
}
int IsEmpty()
{
if(antrian.tail==-1)
return 1;
else
return 0;
}
int 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]<< " Sudah Masuk!"<<endl;
}
else if(IsFull()==0)
{
antrian.tail++;
antrian.data[antrian.tail]=data;
cout<<"Data "<<antrian.data[antrian.tail]<<" Sudah Masuk!"<<endl;
}
else if(IsFull()==1)
{
cout<<"Antrian Penuh!"<<endl;
cout<<data<<"Maaf Data Tidak Dapat Masuk !"<<endl;;
}
}
void Dequeue()
{
int i;
int e = antrian.data[antrian.head];
if(antrian.tail==-1)
{
cout<<"Tidak ada data... Antrian 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<<"Antrian Kosong "<<endl;
cout<<"Data Clear";
}
void tampil()
{
if(IsEmpty()==0)
{
cout<<"Data Dalam Antrian"<<endl;
cout<<"======================================";
cout<<endl;
for(int i=antrian.head; i<=antrian.tail;i++)
{
cout<<"| " <<antrian.data[i]<<" |";
}
}
else
{
cout<<"Tidak ada data..antrian kosong"<<endl;
}
}
int main()
{
int pil;
int data;
create();
do
{
//clrscr();
cout<<"Implementasi Antrian "<<endl;
cout<<"=====================";
cout<<endl;
cout<<"1. Enqueue"<<endl;
cout<<"2. Dequeue "<<endl;
cout<<"3. Print "<<endl;
cout<<"4. Clear "<<endl;
cout<<"5. Exit "<<endl;
cout<<"Masukkan 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);
return 0;
}
OUTPUT :
Referensi : Modul Praktikum Struktur Data Universitas Muhammadiyah Surakarta
Tidak ada komentar:
Posting Komentar