PRAKTIKUM MANDIRI
QUEUE dan STACK
Nama : ISNI FACHRI RIZAL
NIM : F1D013049
A.
Tujuan
1. Pengimplementasian Queue dan
Stack dalam pembuatan program dengan menggunakan link list
B.
Permasalahan
1.
Membuat program untuk pengecekan polindrom dengan menggunakan Queue dan
Stack
C.
Gambar Desain Program
No
|
OPERASI
|
DESKRIPSI
|
C/C++
|
1
|
CONSTRUCT
|
Membuat/membangun link list untuk queue.
|
Void bangun() {size=0;
head=NULL; tail=NULL;};
|
2
|
ENQUEUE
|
Untuk memasukan data ke dalam
link list queue.
|
void queue::masukan(char dt)
|
3
|
DEQUEUE
|
Untuk mengeluarkan data yang
ada di dalam queue.
|
int queue :: keluarkan()
|
4
|
CONSTRUCT
|
Membuat/membangun link list
untuk stack.
|
void bangun() {size=0; head=NULL; tail=NULL;};
|
5
|
POP
|
Untuk memasukan data ke dalam
link list stack.
|
void stack::masukan(char dt)
|
6
|
PUSH
|
Untuk mengeluarkan data yang
ada di dalam stack.
|
int stack :: keluarkan()
|
7
|
PERNYATAAN
|
Untuk menentukan apakah
kata/kalimat yang dimasukan polindrom atau tidak.
|
Void pernyataan bool chek)
|
E.
Kode Program
#include <iostream>
using namespace std;
class queue{
private :
struct node{
char data;
node*next;
node*back;
};
int size;
node*head;
node*tail;
public :
void bangun(){size=0;head=NULL;tail=NULL;};
void masukan(char dt);
int keluarkan();
};
void queue::masukan(char
dt){
node*tmp=new node;
tmp->data=dt;
tmp->next=NULL;
tmp->back=NULL;
if(size==0){
head=tmp;
tail=tmp;
size++;
}else{
tmp->next=head;
head->back=tmp;
head=tmp;
size++;
}
}
int queue::keluarkan(){
node *tmp=tail;
tail=tmp->back;
return tmp->data;
delete tmp;
}
class stack{
private :
struct node{
char data;
node*next;
};
int size;
node*head;
node*tail;
public :
void bangun(){size=0;head=NULL;tail=NULL;};
void masukan(char dt);
int keluarkan();
};
void stack::masukan(char dt){
node*tmp=new node;
tmp->data=dt;
tmp->next=NULL;
if(size==0){
head=tmp;
tail=tmp;
size++;
}else{
tmp->next=head;
head=tmp;
size++;
}
}
int stack::keluarkan(){
node *tmp=head;
head=tmp->next;
return tmp->data;
delete tmp;
}
void pernyataan(bool chek){
if (chek==true){
cout<<"kata/kalimat yang anda masukan
POLINDROM\n";
}else{
cout<<"kata/kalimat yang anda masukan bukan
POLINDROM\n";
}
}
void main(){
queue a;
stack b;
int c;
char d, z;
cout<<"\t-----SELAMAT DATANG-----\n\n";
do{
a.bangun();
b.bangun();
cout<<"masukan jumlah huruf : ";cin>>c;
cout<<"masukan kata/kalimat : ";
for(int i=0;i<c;i++){
cin>>d;
a.masukan(d);
b.masukan(d);
}
char e, f;
bool chek=true;
for(int i=0;i<c;i++){
e=a.keluarkan();
f=b.keluarkan();
if(e!=f){
chek=false;
break;
}
}
pernyataan(chek);
cout<<"mau coba lagi ?(y/n)\n";
cin>>z;
}while(z=='y');
cout<<"\n\t-----TERIMA KASIH-----\n";
system ("pause");
}
|
F.
Tampilan Ketika Dijalankan
G.
Cara Kerja Program
Pertama program akan meminta jumlah huruf yang akan
dimasukan oleh pengguna, yang akan digunakan sebagai variabel, untuk melakukan
pengulangan ketika memasukan data ke dalam queue dan stack.
Setelah pengguna memasukan kata/kalimat yang akan
dicek, program akan memasukan karakter per karakter dari kata/kalimat ke dalam
queue dan stack.
Karakter-karakter
yang terdapat pada queue dan stack akan dikeluarkan satu per satu menggunakan
fungsi pengulangan dan kemudian dilakukan perbandingan menggunakan fungsi seleksi.
Apabila
perbandingan karakter-karakter berjalan dengan lancar dan tanpa terjadi
perbedaan, maka program akan mengeluarkan keluaran yang menyatakan bahwa
kata/kalimat tersebut polindrom
Namun
apabila terdapat perbedaan ketika melakukan perbandingan, maka program akan
mengeluarkan keluaran yang menyatakan bahwa kata/kalimat tersebut bukan
polindrom.
Tidak ada komentar:
Posting Komentar