Di sini yang akan saya bahas adalah pembuatan sebuah program untuk mensimulasikan perintah yang bisa dilakukan pada queue menggunakan bahasa C++. Sebelum melanjutkan membaca ke bagian bawah , anda bisa mencoba untuk membuat terlebih dahulu program yang dimaksud, contoh penggunaan :
Input Queue (belakang - depan) Output
push(23) 23 -
push(20) 20 23 -
push(45) 45 20 23 -
front 45 20 23 23
back 45 20 23 45
pop 45 20 -
front 45 20 20
pop 45 -
pop - -
pop - Queue is empty
front - Queue is empty
back - Queue is empty
push(45) 45 -
push(30) 30 45 -
push(13) 13 30 45 -
empty - 45 30 13
end
Queue yang digunakan di dalam program merupakan bagian dari STL (Standard Template Library) C++. Untuk keterangan mengenai fungsi - fungsi yang ada di dalam class bisa dilihat di : http://www.cplusplus.com/reference/stl/queue/
Untuk Queue di bahasa pemograman yang lain bisa dibuat sendiri menggunakan array dan berberapa variabel pembantu.
Kode program yang dimaksud :
#include <iostream>
#include <queue>
#include <string.h>
using namespace std;
int main(){
char command[25];
queue <int> que;
while(1){
cin >> command;
if(command[1]=='u'){
int c=5, temp=0;
//mengambil angka yang berada didalam kurung
while(command[c]!=')'){
temp = temp*10 + (command[c]-'0');
c++;
}
que.push(temp);
}
else if(strcmp(command,"back")==0){
if(!que.empty()){
cout << que.back() << endl;
}
else{
cout << "Queue is empty" << endl;
}
}
else if(strcmp(command,"front")==0){
if(!que.empty()){
cout << que.front() << endl;
}
else{
cout << "Queue is empty" << endl;
}
}
else if(strcmp(command,"pop")==0){
if(!que.empty()){
que.pop();
}
else{
cout << "Queue is empty" << endl;
}
}
else if(strcmp(command,"empty")==0){
while(!que.empty()){
cout << que.front() << endl;
que.pop();
}
}
else if(strcmp(command,"end")==0){
return 0;
}
else{
cout << "Command not recognized" << endl;
}
}
}
Algoritma dari kode program ini :
1. baca command / perintah
2. jika command adalah
- "push" baca data yand ada di dalam kurung dan masukkan ke queue, kembali ke langkah 1
- "back" jika queue tidak kosong cetak data di belakang, jika kosong cetak "Error", kembali ke langkah 1
- "front" jika queue tidak kosong cetak data di data, jika kosong cetak "Error",kembali ke langkah 1
- "pop" jika queue tidak kosong keluarkan satu data dari queue, jika kosong cetak "Error", kembali ke langkah 1
- "empty" kosongkan queue, kembali ke langkah 1
- "end" lanjutkan ke langkah 3
- selain perintah - perintah di atas cetak "Error"
3. Program berhenti
Untuk tampilan hasil dari program :
Tidak ada komentar:
Posting Komentar