int main(int argc, char **argv) { /* exemplo simples de árvore */ arv_t* raiz; arv_t* raiz_2; op_t soma, n1, n2; pilha_t* pilha; pilha= pilha_cria(); /* inicia expressão */ /* operador + */ soma.tipo = OPERADOR; soma.u.operador = '+'; /* primeiro operando */ n1.tipo = OPERANDO; n1.u.operando = 1.0; /* segundo operando */ n2.tipo = OPERANDO; n2.u.operando = 2.0; /* cria uma árvore */ raiz = arv_cria(soma); arv_imprime_pre_ordem(raiz); pilha_insere(pilha, raiz); printf("\n\n"); arv_destroi(raiz); raiz_2= arv_cria_vazia(); raiz_2= pilha_remove(pilha); arv_imprime_pre_ordem(raiz_2); return 0; }
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; }
int main(){ Pilha* p=NULL; int op; char resp; float valor; do{ system("cls"); printf("==PILHAS VETORIAIS >> FELIPE==\n\n"); printf("Escolha uma opcao:\n"); printf("1 - Cria a pilha\n"); printf("2 - Testa se a pilha esta vazia\n"); printf("3 - Adiciona um elemento a pilha\n"); printf("4 - Retira um elemento da pilha\n"); printf("5 - Exibe a pilha\n"); printf("6 - SAIR [X]\n\n"); printf("Escolha: "); scanf("%d",&op); switch(op){ case 1: p=pilha_cria(); printf("Pilha criada no endereco %p",p); break; case 2: if(pilha_vazia(p)){ printf("A pilha esta VAZIA"); } else{ printf("A pilha NAO ESTA VAZIA"); } break; case 3: printf("Digite um valor real:"); scanf("%f",&valor); pilha_push(p,valor); break; case 4: pilha_pop(p); break; case 5: pilha_imprime(p); break; case 6: exit(1); } printf("\n\nDeseja continuar? (s/n) :"); scanf("%s",&resp); }while(resp=='s'); getch(); }
/* 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; }