Nama : Agung Wijaya Kusuma
NIM : 140010222
Kelas : AB141
Nama
Dosen : Ida Bagus Kadek Surya Arnawa. S.Kom
Nama
Asisten Dosen : Steven Anthony
D. Queue
Queue merupakan kumpulan elemen dengan
penyisipan dan penghapusan elemen yang dilakukan dari sisi atau gerbang yang
berbeda. Queue mempunyai dua gerbang
yaitu gerbang depan dan gerbang belakang. Antrian adalah suatu kumpulan data
yang penambahan elemennya hanya bisa dilakukan pada suatu ujung (disebut dengan
sisi belakang atau rear), dan penghapusan atau pengambilan elemen dilakukan
lewat ujung yang lain (disebut dengan sisi depan atau front).. Dengan demikian
Queue mempunyai sifat FIFO (First In First Out), yaitu elemen yang pertama
masuk akan keluar pertama juga.
- Deklarasi Queue
#define MaxQ N
#define false 0
#define true 1
Struct Queue
{
TypeData
Isi[MaxQ + 1];
TypeData
Depan;
TypeData
Belakang;
} ;
Contoh Queue dalam Coding :
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#define max 10
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]<<"Masuk!!!";
}
else if(IsFull()==0)
{
antrian.tail++;
antrian.data[antrian.tail]=data;
cout<<"data"<<antrian.data[antrian.tail]<<"Masuk!!!";
}
else if (IsFull()==1)
{
cout<<"Ruangan
Penuh!!"<<endl;
cout<<data<<"Gak Bisa MAsuk!!!";
}
}
void Dequeue()
{
int
i;
int e = antrian.data[antrian.head];
if(antrian.tail==-1)
{
cout<<"Gak ada
antrian.. 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<<"Duh Lega, Ruangan jadi gak sumpek.."<<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<<"ga ada
antrian.. Data Kosong";
}
}
void main()
{
int
pil;
int data;
create();
do
{
clrscr();
cout<<"Implementasi antrian dengan struct"<<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);
}
Sumber : Buku Konsep dan Implementasi
Struktur Data dengan C++
Oleh : Lamhot Sitorus dan David J.M
Sembiring, Andi Kristanto, S.Kom
Penerbit : Andi dan Graha Ilmu







0 komentar:
Posting Komentar