0% found this document useful (0 votes)
6 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
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 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
We take content rights seriously. If you suspect this is your content, claim it here.
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