int main() { char seq[TAM_BUF]; int n, i, c; Pilha *pil; pil = pilha_cria(); printf("Nao insira espacos para a sequencia a seguir!\n"); printf("Entre com a sequencia de parenteses e chaves: "); n = scanf("%s", seq); if (n == 0) { printf("A sequencia esta vazia!\n"); goto saida; } else { for (i = 0; seq[i] != '\0'; i++) { switch(seq[i]) { case '(': pilha_push(pil, '('); break; case '{': pilha_push(pil, '{'); break; case ')': if (pilha_vazia(pil)) goto mal_formada; c = pilha_pop(pil); if (c != '(') goto mal_formada; break; case '}': if (pilha_vazia(pil)) goto mal_formada; c = pilha_pop(pil); if (c != '{') goto mal_formada; break; default: printf("Erro, caracter invalido: %c\n", seq[i]); goto saida; break; } } } if (pilha_vazia(pil)) { printf("A sequencia eh bem-formada!\n"); goto saida; } mal_formada: printf("A sequencia eh mal-formada!\n"); saida: pilha_libera(pil); return 0; }
void desembarque(Pilha* p){ Fila* f = getfila(); while(!pilha_vazia(p)){ Mala* m = pilha_pop(p); fila_insere(f,m); } imprime_fila(f); pilha_libera(p); fila_libera(f); printf("\nDesembarque Realizado com Sucesso!\n"); }
/* SEU PROGRAMA - MAIN */ int main() { int numero; Pilha pilha_matrioskhas; /* Leitura da quantidade de elementos da possivel Matrioshka */ while(scanf("%d", &numero) && numero != 0){ /* Criacao da pilha de Matrioshkas */ pilha_cria(&pilha_matrioskhas); /* Confirmacao se a pilha eh Matrioshka ou nao */ if(Matrioshkas(&pilha_matrioskhas,numero)){ printf(":-) Matrioshka!\n"); } else{ printf(":-( Tente novamente.\n"); } /* Liberacao da pilha */ pilha_libera(&pilha_matrioskhas); } return 0; }