Stack Operation
Stack Operation
a. Initialize a stack
d. Display a stack
#include <stdio.h>
#include <stdlib.h>
int *data;
int top;
int capacity;
} Stack;
stack->capacity = 1;
stack->top = -1;
if (!stack->data) {
exit(1);
}
// Function to resize the stack dynamically
stack->capacity *= 2;
if (!stack->data) {
exit(1);
if (stack->top == stack->capacity - 1) {
resizeStack(stack);
stack->data[++stack->top] = element;
if (stack->top == -1) {
return;
if (stack->top == -1) {
return;
printf("\n");
free(stack->data);
int main() {
Stack stack;
while (1) {
printf("\nMenu:\n");
printf("5. Exit\n");
scanf("%d", &choice);
switch (choice) {
case 1:
initStack(&stack);
break;
case 2:
scanf("%d", &element);
push(&stack, element);
break;
case 3:
pop(&stack);
break;
case 4:
display(&stack);
break;
case 5:
freeStack(&stack);
exit(0);
default:
return 0;