#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) ;
do
{
if ( push( & p, a) == 1 )
{
s = 'n' ;
}
else
{
printf ( "size %d\n " , sizee
( & p
) ) ; }
}
while ( s == 's' ) ;
// printf("1=vuoto\n, 0=piento\n %d\n", is_emptyy(&p));
do
{
if ( pop( & p, & b) == 1 )
{
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 ;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCiNkZWZpbmUgRElNIDQKCnN0cnVjdCBzdGFja1QKewoJaW50IHN0YWNrX2FycmF5W0RJTV07CglpbnQgaGVhZDsKfTsKCnZvaWQgaW5pdChzdHJ1Y3Qgc3RhY2tUICpwaWxhKTsKaW50IHB1c2goc3RydWN0IHN0YWNrVCAqcGlsYSwgaW50IGVsZW0pOwppbnQgcG9wKHN0cnVjdCBzdGFja1QgKnBpbGEsIGludCAqZWxlbSk7CmludCBzaXplZShzdHJ1Y3Qgc3RhY2tUICpwaWxhKTsKaW50IGlzX2VtcHR5eShzdHJ1Y3Qgc3RhY2tUICpwaWxhKTsKCmludCBtYWluKCkKewoJc3RydWN0IHN0YWNrVCBwOwoJY2hhciBmLCBzOwoJaW50IGE7CglpbnQgYjsKCWluaXQoJnApOwoJcHJpbnRmKCJjb250aW51aSBbc1xcbl0iKTsKCXNjYW5mKCIgJWMiLCAmcyk7CglkbwoJewoJCXByaW50ZigiaW5zZXJpc2NpIGFcbiIpOwoJCXNjYW5mKCIlZCIsICZhKTsKCQlpZiAocHVzaCgmcCwgYSkgPT0gMSkKCQl7CgkJCXByaW50ZigibGEgcGlsYSDDqCBwaWVuYVxuIik7CgkJCXMgPSAnbic7CgkJfQoJCWVsc2UKCQl7CgkJCXByaW50Zigic2l6ZSAlZFxuIiwgc2l6ZWUoJnApKTsKCQl9Cgl9Cgl3aGlsZSAocyA9PSAncycpOwoKLy8JcHJpbnRmKCIxPXZ1b3RvXG4sIDA9cGllbnRvXG4gJWRcbiIsIGlzX2VtcHR5eSgmcCkpOwoKCXByaW50ZigiY2FuY2VsbGFyZT8gW3NcXG5dIik7CglzY2FuZigiICVjIiwgJmYpOwoJcHJpbnRmKCJcbiIpOwoKCWRvCgl7CgkJaWYgKHBvcCgmcCwgJmIpID09IDEpCgkJewoJCQlwcmludGYoImxhIHBpbGEgw6ggdnVvdGEiKTsKCQkJZiA9ICduJzsKCQl9Ci8vCQlwcmludGYoIiVkIiwgYik7CgkJcHJpbnRmKCJwLmhlYWQ6ICVkXG4iLCBwLmhlYWQgKTsKCX0KCXdoaWxlIChmID09ICdzJyk7CgovLwlwcmludGYoIjE9dnVvdG8sIDA9cGllbnRvXG4gJWRcbiIsIGlzX2VtcHR5eSgmcCkpOwoKCXJldHVybiAwOwp9Cgp2b2lkIGluaXQoc3RydWN0IHN0YWNrVCAqcGlsYSkKewoJcGlsYS0+aGVhZCA9IDA7CglyZXR1cm47Cn0KCmludCBwdXNoKHN0cnVjdCBzdGFja1QgKnBpbGEsIGludCBlbGVtKQp7CglpZiAocGlsYS0+aGVhZCA9PSBESU0pCgkJcmV0dXJuIDE7CglwaWxhLT5zdGFja19hcnJheVtwaWxhLT5oZWFkXSA9IGVsZW07CglwaWxhLT5oZWFkKys7CglyZXR1cm4gMDsKfQoKaW50IHBvcChzdHJ1Y3Qgc3RhY2tUICpwaWxhLCBpbnQgKmVsZW0pCnsKCWlmIChwaWxhLT5oZWFkID09IDApCgkJcmV0dXJuIDE7CgkqZWxlbSA9IHBpbGEtPnN0YWNrX2FycmF5W3BpbGEtPmhlYWRdOwoJcGlsYS0+aGVhZC0tOwoJcmV0dXJuIDA7Cn0KCmludCBzaXplZShzdHJ1Y3Qgc3RhY2tUICpwaWxhKQp7CglyZXR1cm4gcGlsYS0+aGVhZDsKfQoKaW50IGlzX2VtcHR5eShzdHJ1Y3Qgc3RhY2tUICpwaWxhKQp7CglpZiAocGlsYS0+aGVhZCA9PSAwKQoJCXJldHVybiAxOwoJcmV0dXJuIDA7Cn0=