Push and Pop Operation in Stack Memory
Stack is the data structure working in the principle
LIFO - Last in First Out. The below program written in C is to perform Push and Pop operation in Stack Memory Concept in data structure. Push and Pop operations are used to add data to stack memory and remove data from the stack respectively. If the stack memory is full then the stack is considered to be in overflow state. It is considered to be in Underflow state when performing Pop operation when the stack is empty. This below C program example will let you understand the stack memory operation
#include <stdio.h>
#include <stdlib.h>
#define SIZE 50
void push(int i);
int pop(void);
int *tos, *p1, stack[SIZE];
int main(void)
{
int value;
tos = stack; /* tos points to the top of stack */
p1 = stack; /* initialize p1 */
do {
printf("Enter value: ");
scanf("%d", &value);
if(value != 0) push(value);
else printf("value on top is %d\n", pop());
} while(value != -1);
return 0;
}
void push(int i)
{
p1++;
if(p1 == (tos+SIZE)) {
printf("Stack Overflow.\n");
exit(1);
}
*p1 = i;
}
int pop(void)
{
if(p1 == tos) {
printf("Stack Underflow.\n");
exit(1);
}
p1--;
return *(p1+1);
}