how to reversed a line of text using stack??
Code:
#include <stdio.h>
#include <stdlib.h>
#include <stack>
#define MAXSTACK 50
struct StackRec
{
int top;
char entry[MAXSTACK];
};
typedef struct StackRec Stack;
void initializeStack(Stack *stackPtr)
{
stackPtr->top = -1;
}
int stackEmpty(const Stack *stackPtr)
{
if (stackPtr->top < 0)
{
return 1; //return true
}
else
{
return 0; //return false
}
}
int stackFull(const Stack *stackPtr)
{
if (stackPtr->top >= MAXSTACK - 1)
{
return 1; //return true
}
else
{
return 0; //return false
}
}
void push(Stack *stackPtr, char item)
{
if (stackFull(stackPtr))
{
printf("Stack is full\n");
}
else
{
stackPtr->top++;
stackPtr->entry[stackPtr->top] = item;
}
}
float pop(Stack *stackPtr)
{
float item;
if (stackEmpty(stackPtr))
{
printf("Stack is empty\n");
}
else
{
item = stackPtr->entry[stackPtr->top];
stackPtr->top--;
}
return item;
}
void main()
{
Stack theStack;
float next;
char str [50];
int i;
initializeStack(&theStack);
printf("Please enter a string: ");
while (scanf("%c", str) != EOF) {
push(&theStack, next);
}
while (!stackEmpty(&theStack)) {
next = pop(&theStack);
for (i=0;i<MAXSTACK;i++){
printf("i=%d",i);
printf("%c \n", str[i]);
}
printf("Reversed line: ");
printf("Is palindrome?");
}
}
Help me see what's wrong i make??