#include <iostream.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#define maxstack 100
void inisialisasi(); //prototype fungsi inisialisasi
void push(char); //prototype fungsi push
void pop(); //prototype fungsi pop
bool isfull(); // fungsi boolean
bool isempty(); // fungsi boolean
struct STACK
{
int top;
char stack[maxstack];
};
STACK stackbaru; // pendeklarasian variabel menggunakan struct
char wordInput[maxstack];
int a;
main()
{
int i,j;
system("cls");
inisialisasi(); // pemanggilan fungsi inisialisasi
printf("Masukkan Sebuah Kalimat : "); // perintah untuk menginputkan kalimat
gets(wordInput);
for(i=0; wordInput[i]; i++)
push(wordInput[i]); // proses perulangan untuk mendaptkan string awal
printf("\n");
printf("Kalimat awal --> "); //menampilkan kalimat awal sebelum dibalik
for(j=0; j<=stackbaru.top; j++)
printf("%c", stackbaru.stack[j]);
printf("\n\n");
printf("Kalimat setelah dibalik --> "); //menampilkan kalimat setelah dibalik
pop();
cout<<endl;
}
void inisialisasi() //fungsi inisialisasi
{
stackbaru.top = -1;
}
bool isfull() //fungsi boolean isfull
{
if(stackbaru.top == maxstack-1)
return true;
else
return false;
}
bool isempty() //fungsi boolean isempty
{
if(stackbaru.top==-1)
return true;
else
return false;
}
void push (char data) //fungsi push
{
if(isfull()==false)
{
stackbaru.top++;
stackbaru.stack[stackbaru.top]=data;
}
else
{
printf("\n");
printf("Maaf, jumlah karakter melebihi batas\n");
printf("String yg bisa diproses adalah: ");
for(a=0; a<maxstack; a++);
printf("%c", stackbaru.stack[a]);
printf("\n");
}
}
void pop() //fungsi pop
{
while(isempty()==false)
{
printf("%c", stackbaru.stack[stackbaru.top]);
stackbaru.top--;
}
}
Mungkin sekian dulu , untuk hasilnya silahkan dikompile sendiri ya programnya , semoga bermanfaat , dan salam sukses
Bintara .