#include #include "stiva.h" #define MAX 100 // dimensiunea maxima a stivei struct _stk { elem_t t[MAX]; // tabloul de elemente int sp; // indicele stivei }; // avem typedef struct _stk *stack in stiva.h stack create(void) { stack s = malloc(sizeof(struct _stk)); if (s) s->sp = 0; return s; } int empty(stack s) { return s->sp == 0; } int full(stack s) { return s->sp == MAX; } void push(stack *s, elem_t e) { if ((*s)->sp < MAX) (*s)->t[(*s)->sp++] = e; } elem_t pop(stack *s) { return (*s)->sp ? (*s)->t[--(*s)->sp] : 0; } elem_t top(stack s) { return s->sp ? s->t[s->sp-1] : 0; }