Esempio n. 1
0
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;
}
Esempio n. 2
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;
}
Esempio n. 3
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();
}
Esempio n. 4
0
/* 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;
}