C Program for Array Representation of Stack [Push, Pop and Display]


What is Stack?
Stack is a LIFO (last in first out) structure. It is an ordered list of the same type of elements. A stack is a linear list where all insertions and deletions are permitted only at one end of the list. When elements are added to stack it grow at one end. Similarly, when elements are deleted from a stack, it shrinks at the same end.


Below I have written a C program that performs push, pop and display operations on a stack. It is implemented using 1-D array.

C Program for Array Representation of Stack [Push]

C Program for Array Representation of Stack [Delete]

  C Program for Array Representation of Stack [Display]

#include<stdio.h>
#include<conio.h>
#include<process.h>       //for exit()
#include<stdlib.h>         //for system("cls")

#define MAX 5               //Maximum number of elements that can be stored

int top=-1,stack[MAX];
void push();
void pop();
void display();

void main()
{
    int ch;
    while(1)                //infinite loop, will end when choice will be 4
    {
        system("cls");      //work in windows, for other OS change it to system("clear")
        printf("*** Stack Menu ***");
        printf("\n\n1.Push\n2.Pop\n3.Display\n4.Exit");
        printf("\n\nEnter your choice(1-4):");
        scanf("%d",&ch);

        switch(ch)
        {
            case 1: push();
                    break;
            case 2: pop();
                    break;
            case 3: display();
                    break;
            case 4: exit(0);

            default: printf("\nWrong Choice!!Press any key....");
                     getch();
        }
    }
}


void push()
{
    int val;
    if(top==MAX-1)
    {
        printf("\nStack is full!!Press any key....");
        getch();
    }
    else
    {
        printf("\nEnter element to push:");
        scanf("%d",&val);
        top=top+1;
        stack[top]=val;
        printf("\nPress any key....");
        getch();
    }
}


void pop()
{
    if(top==-1)
    {
        printf("\nStack is empty!!Press any key....");
        getch();
    }
    else
    {
        printf("\nDeleted element is %d\nPress any key....",stack[top]);
        top=top-1;
        getch();
    }
}


void display()
{
    int i;
    if(top==-1)
    {
        printf("\nStack is empty!!Press any key....");
        getch();
    }
    else
    {
        printf("\nStack is...\n");
        for(i=top;i>=0;--i)
            printf("%d\n",stack[i]);

    printf("\nPress any key....");
    getch();
    }
}


Subscribe To Get Tutorials Directly In You Inbox!

1 comments:

This is plain C, or did I miss any C++ features?

Reply

Post a Comment

Have any Doubt? Ask Here!