Answer to Question #251798 in C for alex

Question #251798

Write a menu driven program to perform the following

operations of a stack using linked list by using suitable user defined

functions for each case.


1
Expert's answer
2021-10-16T01:43:35-0400
#include<stdio.h>
#include<stdlib.h>
#define MAX 20


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


void push(int item);
int pop();
int peek();
int isEmpty();
int isFull();
void display();


int main()
{
        int choice,item;
        while(1)
        {       
                
                printf("\n 1.Push \n");
                printf("2.Pop\n");
                printf("3.Display the top element\n");
                printf("4.Display all stack elements\n");
                printf("5.Quit\n");
                printf("\nEnter your choice number from the above menu: ");
                scanf("%d",&choice);
                switch(choice)
                {
                 case 1 :
                        printf("\n Enter the item to be pushed : ");
                        scanf("%d",&item);
                        push(item);
                        break;
                 case 2:
                        item = pop();
                        printf("\nPopped item is : %d\n",item );
                        break;
                 case 3:
                        printf("\nItem at the top is : %d\n", peek() );
                        break;
                 case 4:
                        display();
                        break;
                 case 5:
                        exit(1);
                 default:
                        printf("\n Entered choice is incorrect. Please enter the correct choice.\n");
                }
        }


        return 0;


}


void push(int item)
{
        if( isFull() )
        {
                printf("\n Stack is full.\n");
                return;
        }
        top = top+1;
        stack_arr[top] = item;
}


int pop()
{
        int item;
        if( isEmpty() )
        {
                printf("\n No element available in stack. \n");
                exit(1);
        }
        item = stack_arr[top];
        top = top-1;
        return item;
}


int peek()
{
        if( isEmpty() )
        {
                printf("\n Stack is empty. \n");
                exit(1);
        }
        return stack_arr[top];
}


int isEmpty()
{
        if( top == -1 )
                return 1;
        else
                return 0;
}


int isFull()
{
        if( top == MAX-1 )
                return 1;
        else
                return 0;
}


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

Need a fast expert's response?

Submit order

and get a quick answer at the best price

for any assignment or question with DETAILED EXPLANATIONS!

Comments

No comments. Be the first!

Leave a comment

LATEST TUTORIALS
New on Blog
APPROVED BY CLIENTS