#include <stdio.h>
#include <stdlib.h>
#define MAX 10
typedef struct Pilha pilha;
struct Pilha {
int qnt;
int dados[MAX];
};
pilha* cria() {
pilha *p;
if(p != NULL)
p->qnt = 0;
return p;
}
void insere(pilha *p, int valor) {
p->dados[p->qnt] = valor;
p->qnt++;
}
void exibe(pilha *p) {
for(int i= 0; i<p->qnt; i++)
}
pilha* inverte(pilha **p) {
pilha *outra = cria();
while((*p)->qnt >= 0 ) {
outra->dados[outra->qnt] = (*p)->dados[(*p)->qnt];
(*p)->qnt--;
outra->qnt++;
}
return outra;
}
int main() {
pilha *p;
p = cria();
insere(p, 32);
insere(p, 45);
insere(p, 78);
exibe(p);
p = inverte(&p);
exibe(p);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCiNkZWZpbmUgTUFYIDEwCgp0eXBlZGVmIHN0cnVjdCBQaWxoYSBwaWxoYTsKCnN0cnVjdCBQaWxoYSB7CiAgICBpbnQgcW50OwogICAgaW50IGRhZG9zW01BWF07Cn07CgpwaWxoYSogY3JpYSgpIHsKICAgIHBpbGhhICpwOwogICAgcCA9IG1hbGxvYyhzaXplb2YocGlsaGEpKTsKICAgIGlmKHAgIT0gTlVMTCkKICAgICAgICBwLT5xbnQgPSAwOwogICAgIHJldHVybiBwOwp9CnZvaWQgaW5zZXJlKHBpbGhhICpwLCBpbnQgdmFsb3IpIHsKICAgIHAtPmRhZG9zW3AtPnFudF0gPSB2YWxvcjsKICAgIHAtPnFudCsrOwp9CnZvaWQgZXhpYmUocGlsaGEgKnApIHsKICAgIGZvcihpbnQgaT0gMDsgaTxwLT5xbnQ7IGkrKykKICAgICAgICBwcmludGYoIiUzZCIsIHAtPmRhZG9zW2ldKTsKfQoKcGlsaGEqIGludmVydGUocGlsaGEgKipwKSB7CiAgICBwaWxoYSAqb3V0cmEgPSBjcmlhKCk7CiAgICB3aGlsZSgoKnApLT5xbnQgPj0gMCApIHsKICAgICAgICAgb3V0cmEtPmRhZG9zW291dHJhLT5xbnRdID0gKCpwKS0+ZGFkb3NbKCpwKS0+cW50XTsKICAgICAgICAoKnApLT5xbnQtLTsKICAgICAgICBvdXRyYS0+cW50Kys7CiAgICB9CiAgICByZXR1cm4gb3V0cmE7Cn0KaW50IG1haW4oKSB7CgogICAgcGlsaGEgKnA7CiAgICBwID0gY3JpYSgpOwogICAgaW5zZXJlKHAsIDMyKTsKICAgIGluc2VyZShwLCA0NSk7CiAgICBpbnNlcmUocCwgNzgpOwogICAgZXhpYmUocCk7CgogICAgcCA9IGludmVydGUoJnApOwogICAgcHJpbnRmKCJcbiIpOwogICAgZXhpYmUocCk7CiAgICByZXR1cm4gMDsKfQo=