Rabu, 30 Mei 2018

PROGRAM UNTUK MELAKUKAN OPERASI DATA QUEUE (ANTRIAN)
#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