Implement Stack Using Array | Programming and Data Structures - Computer Science Engineering (CSE) PDF Download

Stack Using Array

A stack data structure can be implemented using a one-dimensional array. But stack implemented using array stores only a fixed number of data values. This implementation is very simple. Just define a one dimensional array of specific size and insert or delete the values into that array by using LIFO principle with the help of a variable called 'top'. Initially, the top is set to -1. Whenever we want to insert a value into the stack, increment the top value by one and then insert. Whenever we want to delete a value from the stack, then delete the top value and decrement the top value by one.

Stack Operations using Array

A stack can be implemented using array as follows...
Before implementing actual operations, first follow the below steps to create an empty stack.

  • Step 1 - Include all the header files which are used in the program and define a constant 'SIZE' with specific value.
  • Step 2 - Declare all the functions used in stack implementation.
  • Step 3 - Create a one dimensional array with fixed size (int stack[SIZE])
  • Step 4 - Define a integer variable 'top' and initialize with '-1'. (int top = -1)
  • Step 5 - In main method, display menu with list of operations and make suitable function calls to perform operation selected by the user on the stack.

push(value) - Inserting value into the stack
In a stack, push() is a function used to insert an element into the stack. In a stack, the new element is always inserted at top position. Push function takes one integer value as parameter and inserts that value into the stack. We can use the following steps to push an element on to the stack...

  • Step 1 - Check whether stack is FULL. (top == SIZE-1)
  • Step 2 - If it is FULL, then display "Stack is FULL!!! Insertion is not possible!!!" and terminate the function.
  • Step 3 - If it is NOT FULL, then increment top value by one (top++) and set stack[top] to value (stack[top] = value).

pop() - Delete a value from the Stack
In a stack, pop() is a function used to delete an element from the stack. In a stack, the element is always deleted from top position. Pop function does not take any value as parameter. We can use the following steps to pop an element from the stack...

  • Step 1 - Check whether stack is EMPTY. (top == -1)
  • Step 2 - If it is EMPTY, then display "Stack is EMPTY!!! Deletion is not possible!!!" and terminate the function.
  • Step 3 - If it is NOT EMPTY, then delete stack[top] and decrement top value by one (top--).

display() - Displays the elements of a Stack

We can use the following steps to display the elements of a stack...

  • Step 1 - Check whether stack is EMPTY. (top == -1)
  • Step 2 - If it is EMPTY, then display "Stack is EMPTY!!!" and terminate the function.
  • Step 3 - If it is NOT EMPTY, then define a variable 'i' and initialize with top. Display stack[i] value and decrement i value by one (i--).
  • Step 4 - Repeat above step until i value becomes '0'.

Implementation of Stack using Array

#include<stdio.h>

#include<conio.h>

#define SIZE 10

void push(int);

void pop();

void display();

int stack[SIZE], top = -1;

void main()

{

   int value, choice;

   clrscr();

   while(1){

      printf("\n\n***** MENU *****\n");

      printf("1. Push\n2. Pop\n3. Display\n4. Exit");

      printf("\nEnter your choice: ");

      scanf("%d",&choice);

      switch(choice){

     case 1: printf("Enter the value to be insert: ");

         scanf("%d",&value);

         push(value);

         break;

     case 2: pop();

         break;

     case 3: display();

         break;

     case 4: exit(0);

     default: printf("\nWrong selection!!! Try again!!!");

      }

   }

}

void push(int value){

   if(top == SIZE-1)

      printf("\nStack is Full!!! Insertion is not possible!!!");

   else{

      top++;

      stack[top] = value;

      printf("\nInsertion success!!!");

   }

}

void pop(){

   if(top == -1)

      printf("\nStack is Empty!!! Deletion is not possible!!!");

   else{

      printf("\nDeleted : %d", stack[top]);

      top--;

   }

}

void display(){

   if(top == -1)

      printf("\nStack is Empty!!!");

   else{

      int i;

      printf("\nStack elements are:\n");

      for(i=top; i>=0; i--)

     printf("%d\n",stack[i]);

   }

}

Output

Implement Stack Using Array | Programming and Data Structures - Computer Science Engineering (CSE)

The document Implement Stack Using Array | Programming and Data Structures - Computer Science Engineering (CSE) is a part of the Computer Science Engineering (CSE) Course Programming and Data Structures.
All you need of Computer Science Engineering (CSE) at this link: Computer Science Engineering (CSE)
119 docs|30 tests

Top Courses for Computer Science Engineering (CSE)

119 docs|30 tests
Download as PDF
Explore Courses for Computer Science Engineering (CSE) exam

Top Courses for Computer Science Engineering (CSE)

Signup for Free!
Signup to see your scores go up within 7 days! Learn & Practice with 1000+ FREE Notes, Videos & Tests.
10M+ students study on EduRev
Related Searches

practice quizzes

,

Previous Year Questions with Solutions

,

study material

,

shortcuts and tricks

,

Viva Questions

,

ppt

,

mock tests for examination

,

Extra Questions

,

Free

,

Exam

,

Summary

,

pdf

,

Implement Stack Using Array | Programming and Data Structures - Computer Science Engineering (CSE)

,

video lectures

,

Objective type Questions

,

MCQs

,

Sample Paper

,

Implement Stack Using Array | Programming and Data Structures - Computer Science Engineering (CSE)

,

Semester Notes

,

Important questions

,

Implement Stack Using Array | Programming and Data Structures - Computer Science Engineering (CSE)

,

past year papers

;