In this post we will write a program to implement Stack using Arrays. Let’s first understand what is Stack:
Stack:
A stack is an abstract data type that serves as a collection of elements, with two principal operations: push, which adds an element to the collection, and pop, which removes the most recently added element that was not yet removed. The order in which elements come off a stack gives rise to its alternative name, LIFO (for last in, first out).
Below image will make it clear:
There are two ways to implement Stacks:
- Using Array
- Using Linked List
Here I’ve discussed how to implement Stacks, below the code in C for the same.
Program to implement stack using Arrays:
#include<stdio.h> #include<process.h> #define MAXSIZE 10 void push(); int pop(); void traverse(); int stack[MAXSIZE]; int Top=-1; int main() { int choice; char ch; do { printf("\n1. PUSH "); printf("\n2. POP "); printf("\n3. TRAVERSE "); printf("\nEnter your choice "); scanf("%d",&choice); switch(choice) { case 1: push(); break; case 2: printf("\nThe deleted element is %d ",pop()); break; case 3: traverse(); break; default: printf("\nYou Entered Wrong Choice"); } printf("\nDo You Wish To Continue (Y/N)"); fflush(stdin); scanf("%c",&ch); } while(ch=='Y' || ch=='y'); return 0; } void push() { int item; if(Top == MAXSIZE - 1) { printf("\nThe Stack Is Full"); exit(0); } else { printf("Enter the element to be inserted "); scanf("%d",&item); Top= Top+1; stack[Top] = item; } } int pop() { int item; if(Top == -1) { printf("The stack is Empty"); exit(0); } else { item = stack[Top]; Top = Top-1; } return(item); } void traverse() { int i; if(Top == -1) { printf("The Stack is Empty"); exit(0); } else { for(i=Top;i>=0;i--) { printf("Traverse the element "); printf("%dn",stack[i]); } } }
OUTPUT:
1. PUSH 2. POP 3. TRAVERSE Enter your choice 1 Enter the element to be inserted 4 Do You Wish To Continue (Y/N)y 1. PUSH 2. POP 3. TRAVERSE Enter your choice 1 Enter the element to be inserted 6 Do You Wish To Continue (Y/N)y 1. PUSH 2. POP 3. TRAVERSE Enter your choice 3 Traverse the element 6 Traverse the element 4 Do You Wish To Continue (Y/N)y 1. PUSH 2. POP 3. TRAVERSE Enter your choice 1 Enter the element to be inserted 8 Do You Wish To Continue (Y/N)y 1. PUSH 2. POP 3. TRAVERSE Enter your choice 2 The deleted element is 8 Do You Wish To Continue (Y/N)y 1. PUSH 2. POP 3. TRAVERSE Enter your choice 3 Traverse the element 6 Traverse the element 4 Do You Wish To Continue (Y/N)n -------------------------------- Process exited after 43.2 seconds with return value 0 Press any key to continue . . .
Comment if you face any problem.
How to write a program stack global. And using pop() and push()