STACK OPERATIONS

#include<stdio.h>
#include<stdlib.h>
int choice,size,top=-1,num,i,stack[10];
void push();
void pop();
void display();
void pali();

void pali()
{
int flag=1;
for(i=0;i<=top/2;i++)
{
if(stack[i] != stack[top-i])
{
flag=0;
break;
}
}
if(flag==1)
{
printf("PALINDROME\n");
}
else
{
printf("NOT A PALINDROME\n");
}
}

void display()
{
if(top==-1)
{
printf("STACK IS EMPTY\n");
}
else
{
printf("Array Contents\n");
}
for(i=top;i>=0;i--)
{
printf("%d\n",stack[i]);
}
}


void pop()
{
if(top==-1)
{
printf("STACK UNDERFLOW\n");
}
else
{
num=stack[top];
printf("Popped Element is %d",num);
top--;
}
}
void push()
{
if(top==size-1)
{
printf("STACK OVERFLOW\n");
}
else
{
printf("Enter the Element to Insert\n");
scanf("%d",&num);
top++;
stack[top]=num;
}
}
void main()
{
printf("Enter the STACK size\n");
scanf("%d",&size);
while(1)
{
printf("1.PUSH \t 2.POP \t 3.DISPLAY \t 4.Check PALINDROME \t 5.EXIT \n");
printf("Enter Your Choice\n");
scanf("%d",&choice);
switch(choice)
{
case 1:push(); break;
case 2:pop(); break;
case 3:display(); break;
case 4:pali(); break;
case 5:exit(0);
default: printf("Invalid Choice\n");break;
}
}
}

OUTPUT: