Assalamu'alaikum...
Saya akan berbagi sedikit materi tentang Queue ( antrian ) pada C++ dan berikut sedikit penjelasannya....
Berbeda dg stack, prinsip yg digunakan dalam antrian adalah FIFO ( First In First Out ). Dengan kata lain, urutan keluar elemen akan sama dengan urutan masuknya.Antrian (Queue) dapat diartikan sebagai suatu kumpulan data yang seolah-olah terlihat seperti ada data yang diletakkan di sebelah data yang lain. semuanya dilakukan secara FIFO murni, contoh yg relevan dalam bidang komputer adalah Time-sharing Computer System, dimana ada sejumlah penakai ( user ) yg menggunakan sistem tsb secara serempak. Karena sistem ini biasanya menggunakan processor, dan sebuah memory utama. Jika processor sedang dipakai oleh seorang user, maka user yang lain harus antri sampai gilirannya.....
contoh programnya :
Saya akan berbagi sedikit materi tentang Queue ( antrian ) pada C++ dan berikut sedikit penjelasannya....
Berbeda dg stack, prinsip yg digunakan dalam antrian adalah FIFO ( First In First Out ). Dengan kata lain, urutan keluar elemen akan sama dengan urutan masuknya.Antrian (Queue) dapat diartikan sebagai suatu kumpulan data yang seolah-olah terlihat seperti ada data yang diletakkan di sebelah data yang lain. semuanya dilakukan secara FIFO murni, contoh yg relevan dalam bidang komputer adalah Time-sharing Computer System, dimana ada sejumlah penakai ( user ) yg menggunakan sistem tsb secara serempak. Karena sistem ini biasanya menggunakan processor, dan sebuah memory utama. Jika processor sedang dipakai oleh seorang user, maka user yang lain harus antri sampai gilirannya.....
contoh programnya :
#include <iostream>
#include <stdlib.h>
using namespace std;
struct elemen{
int waktu;
string nama;
struct elemen *next;
};
struct queue{
struct elemen *front;
struct elemen *rear;
int count,max;
};
struct queue newQueue()
{
struct queue antrian;
antrian.count = 0;
antrian.front=antrian.rear=NULL;
antrian.max=5;
return antrian;
}
bool isfull(struct queue antrian)
{
return (antrian.max == antrian.count);
}
bool isempty(struct queue antrian)
{
return (antrian.count == 0);
}
void enqueue(struct queue &antrian)
{
if(!isfull(antrian))
{
int wak;
string databaru;
cin.ignore();
cout<<"\nMasukkan nama anda : ";
getline(cin,databaru);
cout<<"\nBerapa menit anda mengantri : ";
cin>>wak;
struct elemen *elemenbaru=new elemen;
elemenbaru->nama=databaru;
elemenbaru->waktu=wak;
elemenbaru->next=NULL;
if(antrian.rear !=NULL){
antrian.rear->next=elemenbaru;
antrian.rear=elemenbaru;
}
else{
antrian.front=antrian.rear=elemenbaru;
}
antrian.count++;
cout<<"\n------Oke silahkan menuju kursi antrian Anda------\n";
}
else cout<<"antrian full"<<endl;
}
void dequeue(struct queue &antrian)
{
if(!isempty(antrian))
{
if(antrian.count==1)
antrian.rear=NULL;
antrian.front=antrian.front->next;
antrian.count--;
}
else
cout<<"sudah kosong"<<endl;
}
void tampilkan(struct queue antrian){
struct elemen *temp=antrian.front;
while (temp!=NULL){
cout<<"\nNama : "<<temp->nama<<"\tLama Mengantri : ";
cout<<temp->waktu<<" Menit"<<endl;
temp=temp->next;
}
cout<<endl;
}
void jumlahwaktu(struct queue antrian){
int x;
struct elemen *temp=antrian.front;
while (temp!=NULL){
x=x+temp->waktu;
temp=temp->next;
}cout<<"\nAnda Harus Menunggu : "<<x<<" Menit lagi\n";
}
void menu (){
cout<<"==================Menu================\n";
cout<<"\t1. Masukkan data anda\n";
cout<<"\t2. Panggil Antrian\n";
cout<<"\t3. Tampilkan Antrian\n";
cout<<"\t4. Tampilkan total waktu\n";
cout<<"======================================\n";
cout<<"Masukkan Pilihan : ";
}
int main(){
struct queue antrian1 = newQueue();
int m;
do{
system("cls");
menu();
cin>>m;
switch(m){
case 1 :system("cls");
enqueue(antrian1);break;
system("pause");
case 2 :system("cls");
dequeue(antrian1);
cout<<"\nAntrian yang pertama Sudah Dipanggil.....\n";break;
system("pause");
case 3 :system("cls");
tampilkan(antrian1);break;
system("pause");
case 4 :system("cls");
jumlahwaktu(antrian1);break;
system("pause");
}system("pause");
}while (m!=0);
}
Semoga bermanfaat....Wassalamu'alaikum....
Tidak ada komentar:
Posting Komentar