#include <stdio.h>
#include <string.h>
#define MAX 100
/*varabel stack */
int top=-1;
int item;
/***************/
char stack_string[MAX];
void pushChar(char item);
char popChar(void);
int isEmpty(void);
int isFull(void);
int main()
{
char str[MAX];
int i;
printf("masukkan string: ");
scanf("%[^\\n]s",str); /*untuk membaca string dengan spasi */
for(i=0;i<strlen(str);i++)
pushChar(str[i]);
for(i=0;i<strlen(str);i++)
str[i]=popChar();
printf("kebalikan string adalah : %s\\n",str);
return 0;
}
/*ungsi untuk memasukkan string kedalam stack*/
void pushChar(char item)
{
/*mengecek apakah stack full atau tidak*/
if(isFull())
{
printf("\\nStack FULL !!!\\n");
return;
}
/*menaikkan nilai TOS dan memasukkan string jedalam stack*/
top=top+1;
stack_string[top]=item;
}
/*fungsi untuk mengambil data dalam stack*/
char popChar()
{
/*mengecek apakah stack kosng atau tidak*/
if(isEmpty())
{
printf("\\nStack Kosong!!!\\n");
return 0;
}
/*mem-pop item dan decrement nilai TOS*/
item = stack_string[top];
top=top-1;
return item;
}
/*fungsi untuk mengecek apakah stack kosong atau tidak*/
int isEmpty()
{
if(top==-1)
return 1;
else
return 0;
}
/*fungsi untuk mengecek apakah stack penuh atau tidak*/
int isFull()
{
if(top==MAX-1)
return 1;
else
return 0;
}