Membuat Contoh Coding C++ Enqueue Dequeue Queue
Hai teman teman
kali ini saya akan mengeshare contoh coding C++ untuk enqueue dequeue dan queue
untuk lebih jelasnya mari kita simak bahasan berikut
Enqueue adalah proses untuk memasukkan elemen artinya menambah data baru. Jika elemen data tidak bisa dimasukkan karena melebihi kapasitas queue akan muncul error yang disebut Overflow.
Dequeue adalah proses untuk mengeluarkan elemen artinya menghapus data. Jika tidak bisa mengeluarkan elemen data satupun karena kosong akan terjadi error yang disebut dengan Underflow.
Queue adalah antrian dimana dalam antrian ini diterapkan sistem FIFO atau First In First Out, artinya data yang pertama masuk, dialah data yang di proses dahulu.
berikut adalah kelemahan queue diantaranya
Data yang terahir tidak akan diproses dahulu sebelum data yang pertama diproses, sehingga waktu tunggu untuk memproses data yang ahir tadi tidak bisa diperkirakan sampai kapan.
untuk coding C++ nya sebagai berikut
#include <iostream>
#include <conio.h>
#include <windows.h>
using namespace std;
bool cek=false;
struct node{
int data;
node *next;
};
class queue{
node *rear,*front;
public:
queue(){
rear=NULL;
front=NULL;
}
void enqueue();
void enqueue2(int d);
void dequeue();
void display();
void counter();
void input();
void tebak();
int t,z;
~queue();
};
void queue::enqueue(){
node *temp;
temp=new node;
cout<<"Data : ";
cin>>temp->data;
temp->next=NULL;
if(rear==NULL){
rear=temp;
front=temp;
}
else{
rear->next=temp;
rear=temp;
}
}
void queue::enqueue2(int d){
node *temp;
temp=new node;
temp->data=d;
temp->next=NULL;
if(rear==NULL){
rear=temp;
front=temp;
}
else{
rear->next=temp;
rear=temp;
}
}
void queue::dequeue(){
if(front!=NULL){
node *temp = front;
front=front->next;
delete temp;
if(front==NULL){
rear=NULL;
}
}else{
cout<<"Queue Empty. . ";
}
}
void queue::display(){
node *temp = front;
while(temp!=NULL){
cout<<temp->data<<"\t";
temp=temp->next;
}
cout<<endl;
}
queue::~queue(){
while(front!=NULL){
node *temp = front;
front=front->next;
delete temp;
}
}
void queue::counter(){
int c,j=0;
srand(time(NULL));
t = rand()%6+1;
while(j<t){
c=front->data;
queue::dequeue();
queue::enqueue2(c);
j++;
}
z=front->data;
queue::dequeue();
}
void queue::input(){
//int inputan;
//cout << "Mau berapa inputan ? " ;
// cin>>inputan;
int i =0,d,e;
while(i<6){
cout<<"Masukkan Data ke "<<i+1<<" :";
cin>>d;
queue::enqueue2(d);
i++;
}
cout<<"\n";
}
void queue::tebak(){
int e;
cout<<"\nTebak Angka yang hilang : ";
cin>>e;
if(e==queue::z){
cout<<"\nSelamat Anda Menang"<<endl;
cek=true;
cout<<"Angka Counter = "<<queue::t<<"\tAngka yang hilang = "<<queue::z<<endl;
}
else{
cout<<"Maaf Anda salah, silakan coba lagi"<<endl;
cout<<"Angka Counter = "<<queue::t<<"\tAngka yang hilang = "<<queue::z<<endl;
cek=false;
Sleep(2000);
system("cls");
}
}
int main(){
queue obj;
obj.input();
int i=6;
while(cek==false&&i>1){
cout<<"Data : "<<endl;
obj.display();
obj.counter();
cout << "\n\n";
cout << "Hasil Enqueue dan Dequeue : ";
obj.display();
obj.tebak();
i--;
}
if(i<=1){
cout<<"Maaf anda kalah, coba lagi di lain waktu :D "<<endl;
}
//obj.display();
system("pause");
return 0;
}
sekian untuk postingan kali ini
jangan lupa like commend dan share yah
Terima kasih
}
sekian untuk postingan kali ini
jangan lupa like commend dan share yah
Terima kasih
0 comments:
Post a Comment