//program yang dapat membalikkan kalimat dengan menggunakan stack
#include <iostream.h>
#include <conio.h>
#define maxstack 200
struct STACK //membuat jenis data abstrak stack
{
int top;
char data[maxstack]; // pendeklarasian untuk menginputkan suatu kalimat dengan maks 200
};
char dta[maxstack];
struct STACK stackbaru;
bool isfull() // fungsi untuk mengetahui apakah stack dalam kondisi penuh (menggunakan boolean)
{
if (stackbaru.top == maxstack-1)
return true; // jika pengkondisian stack dalam keadaan penuh maka benar
else
return false;
}
bool isempty() // fungsi untuk mengetahui apakah stack dalam kondisi kosong
{
if (stackbaru.top == -1)
return true;
else
return false;
}
void push(char dta) // fungsi untuk proses push
{
if (isfull() == false) // jika kondisi stack tidak penuh
{
stackbaru.top++;// user menginputkan data dengan menggunakan variabel dta dimana dta tersebut akan disimpan di stackbaru yang paling atas
stackbaru.data[stackbaru.top]=dta; // increment, yang bermksud jika penginputan dta lagi maka akan tersimpan diatas dta sebelumnnya
}
else // jika stack dalam kondisi penuh
{
cout << "\nMaaf Stack penuh";
}
}
void pop() //mengambil isi stack
{
while (isempty() == false) // jika kondisi stack tidak kosong
{
cout<<stackbaru.data[stackbaru.top]; // akan menampilkan data di stack dimana data tersebut berada yang paling atas
stackbaru.top--; // decrement, maksudnya jika user memilih menu pop lagi maka rogam akan menampilkan data dibawah data yang telah terambiil sebelumnya
}
}
void print() //mencetak stack
{
system ("cls");
cout<<"\nKalimat awal : ";
for (int i=0; i<=stackbaru.top; i++) // diulang sebanyaknya data yang tersimpan didta
{
cout<<stackbaru.data[i];
}
}
void clear()
{
stackbaru.top = -1;
}
int main()
{
char kata[200]; //menampung inputan
cout<< "Masukkan kalimat : ";
gets(kata);
cout << endl;
for(int i=0; kata[i]; i++)
{
push(kata[i]);
}
print();
cout << endl;
cout<<"Dibalik jadi : ";
pop();
cout<<"\n";
}
thank's debby..
BalasHapusmakasih beb
BalasHapusKomentar ini telah dihapus oleh pengarang.
Hapus