#include <stdio.h>
#include <stdlib.h>

#define DIM 4

struct stackT
{
	int stack_array[DIM];
	int head;
};

void init(struct stackT *pila);
int push(struct stackT *pila, int elem);
int pop(struct stackT *pila, int *elem);
int sizee(struct stackT *pila);
int is_emptyy(struct stackT *pila);

int main()
{
	struct stackT p;
	char f, s;
	int a;
	int b;
	init(&p);
	printf("continui [s\\n]");
	scanf(" %c", &s);
	do
	{
		printf("inserisci a\n");
		scanf("%d", &a);
		if (push(&p, a) == 1)
		{
			printf("la pila è piena\n");
			s = 'n';
		}
		else
		{
			printf("size %d\n", sizee(&p));
		}
	}
	while (s == 's');

//	printf("1=vuoto\n, 0=piento\n %d\n", is_emptyy(&p));

	printf("cancellare? [s\\n]");
	scanf(" %c", &f);
	printf("\n");

	do
	{
		if (pop(&p, &b) == 1)
		{
			printf("la pila è vuota");
			f = 'n';
		}
//		printf("%d", b);
		printf("p.head: %d\n", p.head );
	}
	while (f == 's');

//	printf("1=vuoto, 0=piento\n %d\n", is_emptyy(&p));

	return 0;
}

void init(struct stackT *pila)
{
	pila->head = 0;
	return;
}

int push(struct stackT *pila, int elem)
{
	if (pila->head == DIM)
		return 1;
	pila->stack_array[pila->head] = elem;
	pila->head++;
	return 0;
}

int pop(struct stackT *pila, int *elem)
{
	if (pila->head == 0)
		return 1;
	*elem = pila->stack_array[pila->head];
	pila->head--;
	return 0;
}

int sizee(struct stackT *pila)
{
	return pila->head;
}

int is_emptyy(struct stackT *pila)
{
	if (pila->head == 0)
		return 1;
	return 0;
}