BCSL305 Program 3

#include<stdio.h>

#include<stdlib.h>

#define MAX 3

int s[MAX];
int top = -1;

void push(int item);
int pop();
void palindrome();
void display();

void main()
{
    int choice, item;
    while (1)
    {
        printf("\n\n\n\n-----------Menu----------- : ");
        printf("\n=>1.Push an Element to Stack and Overflow demo ");
        printf("\n=>2.Pop an Element from Stack and Underflow demo");
        printf("\n=>3.Palindrome demo ");
        printf("\n=>4.Display ");
        printf("\n=>5.Exit");
        printf("\nEnter your choice: ");
        scanf("%d", & choice);
        switch (choice)
        {
        case 1:
            printf("\nEnter an element to be pushed: ");
            scanf("%d", & item);
            push(item);
            break;
        case 2:
            item = pop();
            if (item != -1)
                printf("\nElement popped is: %d", item);
            break;
        case 3:
            palindrome();
            break;
        case 4:
            display();
            break;
        case 5:
            exit(1);
        default:
            printf("\nPlease enter valid choice ");
            break;
        }
    }
}

void push(int item)
{
    if (top == MAX - 1)
    {
        printf("\n-----------Stack overflow-----------");
        return;
    }

    top = top + 1;
    s[top] = item;
}

int pop()
{
    int item;
    if (top == -1)
    {
        printf("\n-----------Stack underflow-----------");
        return -1;
    }
    item = s[top];
    top = top - 1;
    return item;
}

void display()
{
    int i;
    if (top == -1)
    {
        printf("\n-----------Stack is empty-----------");
        return;
    }
    printf("\nStack elements are:\n ");
    for (i = top; i >= 0; i--)
        printf("| %d |\n", s[i]);
}

void palindrome()
{
    int flag = 1, i;
    printf("\nStack content are:\n");
    for (i = top; i >= 0; i--)
        printf("| %d |\n", s[i]);

    printf("\nReverse of stack content are:\n");
    for (i = 0; i <= top; i++)
        printf("| %d |\n", s[i]);

    for (i = 0; i <= top / 2; i++)
    {
        if (s[i] != s[top - i])
        {
            flag = 0;
            break;
        }
    }
    if (flag == 1)
    {
        printf("\nIt is palindrome number");
    }
    else
    {
        printf("\nIt is not a palindrome number");
    }
}

OUTPUT:

-----------Menu----------- : 
=>1.Push an Element to Stack and Overflow demo 
=>2.Pop an Element from Stack and Underflow demo
=>3.Palindrome demo 
=>4.Display 
=>5.Exit

Enter your choice: 1
Enter an element to be pushed: 11

-----------Menu----------- : 
=>1.Push an Element to Stack and Overflow demo 
=>2.Pop an Element from Stack and Underflow demo
=>3.Palindrome demo 
=>4.Display 
=>5.Exit

Enter your choice: 1
Enter an element to be pushed: 12

-----------Menu----------- : 
=>1.Push an Element to Stack and Overflow demo 
=>2.Pop an Element from Stack and Underflow demo
=>3.Palindrome demo 
=>4.Display 
=>5.Exit

Enter your choice: 1
Enter an element to be pushed: 13

-----------Menu----------- : 
=>1.Push an Element to Stack and Overflow demo 
=>2.Pop an Element from Stack and Underflow demo
=>3.Palindrome demo 
=>4.Display 
=>5.Exit

Enter your choice: 1
Enter an element to be pushed: 14
-----------Stack overflow-----------



-----------Menu----------- : 
=>1.Push an Element to Stack and Overflow demo 
=>2.Pop an Element from Stack and Underflow demo
=>3.Palindrome demo 
=>4.Display 
=>5.Exit

Enter your choice: 4
Stack elements are:
| 13 |
| 12 |
| 11 |


-----------Menu----------- : 
=>1.Push an Element to Stack and Overflow demo 
=>2.Pop an Element from Stack and Underflow demo
=>3.Palindrome demo 
=>4.Display 
=>5.Exit

Enter your choice: 2
Element popped is: 13



-----------Menu----------- : 
=>1.Push an Element to Stack and Overflow demo 
=>2.Pop an Element from Stack and Underflow demo
=>3.Palindrome demo 
=>4.Display 
=>5.Exit

Enter your choice: 4
Stack elements are:
| 12 |
| 11 |




-----------Menu----------- : 
=>1.Push an Element to Stack and Overflow demo 
=>2.Pop an Element from Stack and Underflow demo
=>3.Palindrome demo 
=>4.Display 
=>5.Exit

Enter your choice: 2
Element popped is: 12



-----------Menu----------- : 
=>1.Push an Element to Stack and Overflow demo 
=>2.Pop an Element from Stack and Underflow demo
=>3.Palindrome demo 
=>4.Display 
=>5.Exit

Enter your choice: 2
Element popped is: 11



-----------Menu----------- : 
=>1.Push an Element to Stack and Overflow demo 
=>2.Pop an Element from Stack and Underflow demo
=>3.Palindrome demo 
=>4.Display 
=>5.Exit

Enter your choice: 2
-----------Stack underflow-----------



-----------Menu----------- : 
=>1.Push an Element to Stack and Overflow demo 
=>2.Pop an Element from Stack and Underflow demo
=>3.Palindrome demo 
=>4.Display 
=>5.Exit

Enter your choice: 4
-----------Stack is empty-----------



-----------Menu----------- : 
=>1.Push an Element to Stack and Overflow demo 
=>2.Pop an Element from Stack and Underflow demo
=>3.Palindrome demo 
=>4.Display 
=>5.Exit

Enter your choice: 1
Enter an element to be pushed: 11

-----------Menu----------- : 
=>1.Push an Element to Stack and Overflow demo 
=>2.Pop an Element from Stack and Underflow demo
=>3.Palindrome demo 
=>4.Display 
=>5.Exit

Enter your choice: 1
Enter an element to be pushed: 22

-----------Menu----------- : 
=>1.Push an Element to Stack and Overflow demo 
=>2.Pop an Element from Stack and Underflow demo
=>3.Palindrome demo 
=>4.Display 
=>5.Exit

Enter your choice: 1
Enter an element to be pushed: 11

-----------Menu----------- : 
=>1.Push an Element to Stack and Overflow demo 
=>2.Pop an Element from Stack and Underflow demo
=>3.Palindrome demo 
=>4.Display 
=>5.Exit

Enter your choice: 3
Stack content are:
| 11 |
| 22 |
| 11 |

Reverse of stack content are:
| 11 |
| 22 |
| 11 |

It is palindrome number



-----------Menu----------- : 
=>1.Push an Element to Stack and Overflow demo 
=>2.Pop an Element from Stack and Underflow demo
=>3.Palindrome demo 
=>4.Display 
=>5.Exit

Enter your choice: 2
Element popped is: 11



-----------Menu----------- : 
=>1.Push an Element to Stack and Overflow demo 
=>2.Pop an Element from Stack and Underflow demo
=>3.Palindrome demo 
=>4.Display 
=>5.Exit

Enter your choice: 2
Element popped is: 22



-----------Menu----------- : 
=>1.Push an Element to Stack and Overflow demo 
=>2.Pop an Element from Stack and Underflow demo
=>3.Palindrome demo 
=>4.Display 
=>5.Exit

Enter your choice: 1
Enter an element to be pushed: 33

-----------Menu----------- : 
=>1.Push an Element to Stack and Overflow demo 
=>2.Pop an Element from Stack and Underflow demo
=>3.Palindrome demo 
=>4.Display 
=>5.Exit

Enter your choice: 1
Enter an element to be pushed: 22

-----------Menu----------- : 
=>1.Push an Element to Stack and Overflow demo 
=>2.Pop an Element from Stack and Underflow demo
=>3.Palindrome demo 
=>4.Display 
=>5.Exit

Enter your choice: 3
Stack content are:
| 22 |
| 33 |
| 11 |

Reverse of stack content are:
| 11 |
| 33 |
| 22 |

It is not a palindrome number



-----------Menu----------- : 
=>1.Push an Element to Stack and Overflow demo 
=>2.Pop an Element from Stack and Underflow demo
=>3.Palindrome demo 
=>4.Display 
=>5.Exit

Enter your choice: 5

Leave a Reply

Your email address will not be published. Required fields are marked *