Berikut ini adalah contoh program dalam bahasa C++ untuk implementasi Queue dan Stack C++.
Implementasi Queue
C++
#include <iostream>
#include <queue>
int main() {
std::queue<int> q;
// Menambahkan elemen ke dalam Queue
q.push(10);
q.push(20);
q.push(30);
// Mengakses elemen pertama dalam Queue
std::cout << "Elemen pertama dalam Queue: " << q.front() << std::endl;
// Menghapus elemen pertama dalam Queue
q.pop();
// Mengakses elemen pertama setelah penghapusan
std::cout << "Elemen pertama setelah penghapusan: " << q.front() << std::endl;
// Mengecek apakah Queue kosong atau tidak
if (q.empty()) {
std::cout << "Queue kosong" << std::endl;
} else {
std::cout << "Queue tidak kosong" << std::endl;
}
// Menghitung jumlah elemen dalam Queue
std::cout << "Jumlah elemen dalam Queue: " << q.size() << std::endl;
return 0;
}
C++Implementasi Stack
C++
#include <iostream>
#include <stack>
int main() {
std::stack<int> s;
// Menambahkan elemen ke dalam Stack
s.push(10);
s.push(20);
s.push(30);
// Mengakses elemen teratas dalam Stack
std::cout << "Elemen teratas dalam Stack: " << s.top() << std::endl;
// Menghapus elemen teratas dalam Stack
s.pop();
// Mengakses elemen teratas setelah penghapusan
std::cout << "Elemen teratas setelah penghapusan: " << s.top() << std::endl;
// Mengecek apakah Stack kosong atau tidak
if (s.empty()) {
std::cout << "Stack kosong" << std::endl;
} else {
std::cout << "Stack tidak kosong" << std::endl;
}
// Menghitung jumlah elemen dalam Stack
std::cout << "Jumlah elemen dalam Stack: " << s.size() << std::endl;
return 0;
}
C++Contoh Program Queue dan Stack C++
C++
#include <iostream>
#include <conio.h>
#include<stdio.h>
#include<stdlib.h>
#define MAX 2
using namespace std;
struct antri
{
int data;
};
struct identitas
{
char nama[20];
char no_rek[15];
char transaksi;
char service[30];
int nominal;
};
main()
{
int x=0,y=0,hapus;
char pil;
int pil1;
identitas id[15];
menu:
cout<<"\t\t\t\t\t1.Queue\n";
cout<<"\t\t\t\t\t2.Stack\n";
cout<<"\n=============================\n";
cout<<"\t\t\t\t\tInput Pilihan Anda:";
cin>>pil1;
switch(pil1)
{
case 1:
menua:
identitas id[15];
antri ant[15];
do{
system("cls");
cout<<"\n========================================\n";
cout<<"\n\t\t\t\t\t || PROGRAM TELLER BANK ||";
cout<<"\n========================================\n";
cout<<"1. Nasabah"<<endl;
cout<<"2. Teller"<<endl;
cout<<"3. Back Menu"<<endl;
cout<<endl;
cout<<"Masukkan pilihan Anda (1-3)\t= ";
cin>>pil;
if(pil!='1' && pil !='2' && pil !='3' )
{
//cout<<"Anda salah memasukkan pilihan\n\n";
//system("PAUSE");
}
else
{
if(pil=='1') //PUSH
{
if(x==15 && y==15)
{
cout<<"ANTRIAN PENUH!!!";
}
cout<<endl;
system("cls");
cout<<"Nama Nasabah\t: ";
cin>>id[x].nama;
cout<<"Nomor Rekening\t: ";
cin>>id[x].no_rek;
ulang:
cout<<"Jenis Transaksi\t: \n";
cout<<"\t: A.Debet/Kredit\n";
cout<<"\t B.Customer Service\n"<<"Pilih\t:";
cin>>id[x].transaksi;
if(id[x].transaksi=='a' || id[x].transaksi=='A' )
{
cout<<"Nominal :";
cin>>id[x].nominal;
}
else if(id[x].transaksi=='b' || id[x].transaksi=='B')
{
cout<<"Service:";
cin>>id[x].service;
}
else
{
cout<<"\n\nAnda Salah Memilih Jenis Transaksi\n\n";
cout<<"\n\n";
goto ulang;
}
cout<<endl;
x++;
system("cls");
cout<<"Antrian saat ini\t:\n\n";
for(int z=0;z<x;z++)
{
cout<<"Nomor Antri\t: "<<z+1;
cout<<endl;
cout<<"Nama Nasabah\t: "<<id[z].nama<<endl;
cout<<"Nomor Rekening\t: "<<id[z].no_rek<<endl;
cout<<"Jenis Transaksi\t: ";
if(id[z].transaksi=='a' || id[z].transaksi=='A')
{
cout<<"Debet/Kredit\n";
cout<<"Nominal\t\t: "<<id[z].nominal<<endl;
}
else
{
cout<<"Customer Service\n";
cout<<"Service\t\t: "<<id[z].service<<endl;
}
cout<<endl;
cout<<endl<<endl;
cout<<"\n\n";
system("PAUSE");
}
}
else
{
if(pil=='2') //POP
{
if(x==0)
cout<<"Antrian kosong";
else
{
for(int z=0;z<x;z++)
hapus=z;
for(int v=0;v<x;v++)
ant[v].data=ant[v+1].data;
ant[x].data=NULL;
x--;
system("cls");
cout<<"\nAntrian Dimulai Dari Urutan 1\n";
cout<<"\n\t\tData Nasabah \n\n";
cout<<"Nama Nasabah\t: "<<id[x].nama<<endl;
cout<<"Nomor Rekening\t: "<<id[x].no_rek<<endl;
cout<<"Jenis Transaksi\t: "<<id[x].transaksi<<endl;
cout<<"Nominal\t\t: "<<id[x].nominal<<endl;
cout<<"Service\t\t: "<<id[x].service<<endl;
cout<<endl;
{
int b;
for(b=0;b<x;b++)
id[b]=id[b+1];
b--;
}
}
cout<<endl;
if(x==0)
cout<<"Antrian kosong";
else
cout<<"Nomor Antrian saat ini : ";
for(int z=0;z<x;z++)
{
cout<<" | ";
cout<<" "<<z+1;
cout<<" | ";
}
cout<<endl<<endl;
system("PAUSE");
}
}
}
}
while(pil!='3');
goto menu;
break;
case 2:
menub:
char A[10];
int tumpukkan,data;
int cek;
int z;
tumpukkan=0;
data=-1;
A:
cout<<"\n=================================\n";
cout<<"\n\t\t\t\t\t || PROGRAM STACK ||";
cout<<"\n=================================\n";
cout<<"1. Tambah Data STACK\n";
cout<<"2. Tampilan Data STACK\n";
cout<<"3. Hapus Isi STACK\n";
cout<<"4. Back PROGRAM\n";
cout<<"Pilihan :" ;
cin>>cek;
switch (cek)
{
case 1:
if(data==9)
{
cout<<"Data Penuh\n";
goto A;
}
else
{
data++;
cout<<"INPUT DATA :";
cin>>A[data];
goto A;
system("cls");
}
break;
case 2:
if (tumpukkan>data)
{
cout<<"KOSONG\n";
goto A;
}
else
{
cout<<"\n\nData Tersimpan:\n";
for(z=0;z<=data;z++)
{
cout<<A[z]<<" ";
}
cout<<"\n";
goto A;
}
break;
case 3:
if(tumpukkan>data)
{
cout<<"Data Kosong\n";
goto A;
}
else
{
for(int v=0;v<=data;v++)
{
A[v]=A[v+1];
}
data--;
cout<<"Data Berhasil Dihapus\n";
goto A;
}
break;
default :
{
cout<<"\n SELESAI\n";
}
break;
}
}
}
C++Semoga contoh program di atas dapat membantu Anda dalam memahami implementasi Queue dan Stack dalam bahasa C++. Jika Anda memiliki pertanyaan lebih lanjut, jangan ragu untuk bertanya.