#include <stdio.h>
typedef struct arvore {
unsigned int n;
struct arvore *esq, *dir;
} arvore;
void destruir_arvore(arvore *no) {
if (no == NULL) return;
arvore *nos_abertos[1024];
nos_abertos[0] = no;
int qtd = 1;
while (qtd > 0) {
arvore *ultimo = nos_abertos[qtd - 1];
if (ultimo->esq != NULL) {
nos_abertos[qtd] = ultimo->esq;
ultimo->esq = NULL;
qtd++;
} else if (ultimo->dir != NULL) {
nos_abertos[qtd] = ultimo->dir;
ultimo->dir = NULL;
qtd++;
} else {
qtd--;
}
}
}
int main(int argc, char** argv) {
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+Cgp0eXBlZGVmIHN0cnVjdCBhcnZvcmUgewogICAgdW5zaWduZWQgaW50IG47CiAgICBzdHJ1Y3QgYXJ2b3JlICplc3EsICpkaXI7Cn0gYXJ2b3JlOwoKdm9pZCBkZXN0cnVpcl9hcnZvcmUoYXJ2b3JlICpubykgewogICAgaWYgKG5vID09IE5VTEwpIHJldHVybjsKCiAgICBhcnZvcmUgKm5vc19hYmVydG9zWzEwMjRdOwoKICAgIG5vc19hYmVydG9zWzBdID0gbm87CiAgICBpbnQgcXRkID0gMTsKCiAgICB3aGlsZSAocXRkID4gMCkgewogICAgICAgIGFydm9yZSAqdWx0aW1vID0gbm9zX2FiZXJ0b3NbcXRkIC0gMV07CiAgICAgICAgaWYgKHVsdGltby0+ZXNxICE9IE5VTEwpIHsKICAgICAgICAgICAgbm9zX2FiZXJ0b3NbcXRkXSA9IHVsdGltby0+ZXNxOwogICAgICAgICAgICB1bHRpbW8tPmVzcSA9IE5VTEw7CiAgICAgICAgICAgIHF0ZCsrOwogICAgICAgIH0gZWxzZSBpZiAodWx0aW1vLT5kaXIgIT0gTlVMTCkgewogICAgICAgICAgICBub3NfYWJlcnRvc1txdGRdID0gdWx0aW1vLT5kaXI7CiAgICAgICAgICAgIHVsdGltby0+ZGlyID0gTlVMTDsKICAgICAgICAgICAgcXRkKys7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgZnJlZShub3NfYWJlcnRvc1txdGRdKTsKICAgICAgICAgICAgcXRkLS07CiAgICAgICAgfQogICAgfQp9CgppbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpIHsKICAgIHJldHVybiAwOwp9Cg==