Files
ds-lab-codes/poly.c
T
2025-12-08 21:20:15 +05:30

58 lines
994 B
C

#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct {
int top;
int capacity;
char *array;
} stack;
stack *createStack(int c) {
stack *Stack = (stack *)malloc(sizeof(stack));
if (!Stack) {
return NULL;
}
Stack->capacity = c;
Stack->top = -1;
Stack->array = (char *)malloc(Stack->capacity);
if (!Stack->array) {
free(Stack);
return NULL;
}
return Stack;
}
bool isfull(stack *s) { return s->top == s->capacity - 1; }
bool isempty(stack *s) { return s->top == -1; }
int push(stack *s, char v) {
if (isfull(s)) {
printf("stack overflow");
return -1;
}
s->array[++s->top] = v;
return s->top;
}
int pop(stack *s) {
if (isempty(s)) {
printf("empty");
return -1;
}
return s->array[s->top--];
}
void display(stack *s) {
for (int i = 0; i <= s->top; i++) {
printf("%c", s->array[i]);
}
}
int main() {
stack *ms = createStack(3);
push(ms, 'a');
push(ms, 'b');
display(ms);
}