0% found this document useful (0 votes)
4 views

Stack Implementation Using Arrays

The document provides an implementation of a stack using an array in C, including functions for push, pop, and display operations. It also introduces a stack structure using pointers and a defined structure to manage stack operations more effectively. Key functions include initialization, push, pop, and peek, with error handling for overflow and underflow conditions.

Uploaded by

anmolkhatanauk52
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views

Stack Implementation Using Arrays

The document provides an implementation of a stack using an array in C, including functions for push, pop, and display operations. It also introduces a stack structure using pointers and a defined structure to manage stack operations more effectively. Key functions include initialization, push, pop, and peek, with error handling for overflow and underflow conditions.

Uploaded by

anmolkhatanauk52
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

Array Implementation of Stack

#include <stdio.h>
int stack[100],i, j, choice=0,n,top=-1;
void push();
void pop();
void show();
void main ()
{

printf("Enter the number of elements in the stack ");


scanf("%d", &n);
printf("*********Stack operations using array*********");

printf("\n----------------------------------------------\n");
while(choice != 4)
{
printf("Chose one from the below options...\n");
printf("\n1.Push\n2.Pop\n3.Show\n4.Exit");
printf("\n Enter your choice \n");
scanf("%d",&choice);
switch(choice)
{
case 1:
{
push();
break;
}
case 2:
{
pop();
break;
}
case 3:
{
show();
break;
}
case 4:
{
printf("Exiting....");
break;
}
default:
printf("Please Enter valid choice ");
};
}
}

void push ()
{
int val;
if (top == n )
printf("\n Overflow");
else
{
printf("Enter the value?");
scanf("%d",&val);
top = top +1;
stack[top] = val;
}
}

void pop ()
{
if(top == -1)
printf("Underflow");
else
top = top -1;
}
void show()
{
for (i=top;i>=0;i--)
{
printf("%d\n",stack[i]);
}
if(top == -1)
{
printf("Stack is empty");
}
}

Array Implementation of Stack Using Pointers & Structure

Definition of a stack structure in C:

#define MAX_SIZE 100


typedef struct {
int arr[MAX_SIZE];
int top;
} Stack;

Here, we have defined a structure called Stack, which consists of an array of integers
named arr and an integer top used to identify the element that is now at the top.
The MAX_SIZE constant denotes the stack's maximum capacity.

We must initialize a stack before using it by setting the top variable to -1, which denotes an empty
stack. The initialization function is seen here:

void initialize (Stack *stack) {


stack->top = -1;
}
When performing a push, an element is added to the top of the stack. The top
variable is increased, and the new element is inserted at the corresponding index.

void push (Stack *stack, int element) {


if (stack->top == MAX_SIZE - 1) {
printf("Stack Overflow! Cannot push element %d\n", element);
return;
}
stack->arr[++stack->top] = element;
}

int pop (Stack *stack) {


if (stack->top == -1) {
printf("Stack Underflow! Cannot pop element.\n");
return -1; // Return an invalid value to indicate underflow
}
return stack->arr[stack->top--];
}

int peek (Stack *stack) {


if (stack->top == -1) {
printf("Stack is empty!\n");
return -1; // Return an invalid value to indicate an empty stack
}
return stack->arr[stack->top];
}

You might also like