#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 ele){
    if (isFull()){
        printf("Stack Overflow %d\n",ele);
    }else{
        top++;
        stack[top] = ele;
        printf("%d pushed into stack\n",ele); 
    }
    void pop(){
        if(isEmpty()){
            printf("Stack Underflow\n");
        }else{
            printf("%d popped from stack\n",stack[top]);
            top--;
        }
    }
    void peek(){
        if(isEmpty()){
            printf("Stack is empty\n");
        }else{
            printf("Top element %d\n", stack[top]);
        }
    }
    void display(){
        if(isEmpty()){
            printf("Stack is empty\n");
        }else{
            printf("stack elements top tp bottom:\n");
            for(int i=top;i>=0;i--){
                printf("%d\n",stack[i]);
            }
        }
    }
    int main(){
        push(10);
        push(20);
        push(30);
        display();
        peek();
        pop();
        display();
        push(40);
        push(50);
        push(60);
        display();
        peek();
        if(isEmpty()){
            printf("Stack is empty\n");
        }else if(isFull()){
            printf("Stack is full\n");
        }else{
            peintf("Stack has elements\n");
        }
        
    }
}