#include <stdio.h>
#define size 5
int stack[size];
int top=-1;
int isEmpty(){
    return(top==-1);
}
int isFull(){
    return(top==size-1);
}
void push(int a){
    if(isFull()){
        printf("Stack overflow %d\n",a);
    }
    else{
        top++;
        stack[top]=a;
        printf("PUsh into stack:%d\n",a);
    }
}
void pop(){
    if(isEmpty()){
        printf("Stack underflow\n");
    }
    else{
        printf("Pop top element%d\n",stack[top]);
        top--;
    }
}
void peek(){
    if(isisEmpty()){
        printf("Stack empty\n");
    }
    else{
        printf("top of element %d\n",stack[top]);
    }
}
void display(){
    if(isEmpty()){
        printf("Stack is empty\n");
    }
    else{
        printf("Element top to bottom\n");
        for(int i=top;i>=0;i--){
            printf("%d",stack[i]);
        }
    }
}
int main(){
    int choice,a;
    while(1){
        printf("Stack menu\n");
        printf("1.push\n2.pop\n3.peek\n4.display\n5.exit\n");
        printf("Enter choice:");
        scanf("%d",&choice);
        switch(choice){
            case 1:
                printf("Enter value:");
                scanf("%d",&a);
                push(a);
                break;
            case 2:
                pop();
                break;
            case 3:
                peek();
                break;
            case 4:
                display();
                break;
            case 5:
                printf("Exit program!");
                return 0;
            default:
                printf("Invalid choice!");
        }
    }
}