Codice PHP:
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 50
struct elem
{
int d;
struct elem* next;
};
typedef struct elem elem;
typedef struct stack
{
int cnt;
elem* top;
}stack;
void init(stack*);
void push(stack*,int);
int pop(stack*);
int top(stack*);
int IsEmpty(stack*);
int IsFull(stack*);
void stampa(stack*);
void init(stack* stk)
{
stk->cnt=0;
stk->top=NULL;
}
void push(stack* stk, int d)
{
elem* tmp=malloc(sizeof(elem));
tmp->d=d;
tmp->next=stk->top;
stk->top=tmp;
stk->cnt++;
}
int pop(stack* stk)
{
int dato=stk->top->d;
elem *tmp=stk->top;
stk->top=stk->top->next;
stk->cnt--;
free(tmp);
return dato;
}
int top (stack* stk)
{
return stk->top->d;
}
int IsEmpty(stack* stk)
{
return (stk->cnt==0);
}
int IsFull(stack* stk)
{
return (stk->cnt==MAXSIZE);
}
void stampa(stack* stk)
{
if(stk->cnt==0) return;
else
{
int tmp=pop(stk);
printf("%d ",tmp);
stampa(stk);
}
}
questo è il mio stack.h