int main() { Arv* a = cria('a', cria('b', inicializa(), cria('d', inicializa(), inicializa()) ), cria('c', cria('e', inicializa(), inicializa()), cria('f', inicializa(), inicializa()) ) ); imprime(a); libera(a); return 0; }
//Nome: MatrizAdjacenciaBuscaProfund //Função: Realiza uma busca em profundidade em um grafo a partir de um nó, para descobrir se é conexo //Entrada: Ponteiro para a estrutura de um grafo, nó inicial //Saída: Retorna TRUE se o grafo é conexo e FALSE caso contrário int MatrizAdjacenciaBuscaProfund(GrafoAdj *grafo, int valor){ int marca = 1; int i, no; int compConex = FALSE; Pilha *p = cria(); visitados = (int*) malloc(sizeof(int) * grafo->vertices); for (i = 0; i < grafo->vertices; i++) visitados[i] = 0; visitados[valor-1] = marca; empilha(p, valor-1); //while (compConex == TRUE){ while (!vazia(p)){ no = desempilha(p); visitados[no] = marca; for (i = 0; i < grafo->vertices; i++){ if (grafo->matrizAdj[no][i] != 0){ if(visitados[i] == 0) empilha(p, i); } } } compConex = TRUE; //marca++; for (i = 0; i < grafo->vertices; i++){ if (visitados[i] == 0) { compConex = FALSE; break; } } //if (compConex == TRUE) empilha(p, i); //} free(visitados); destroi(p); return compConex; }
lista retira_final (Baralho *B){ lista compra; Baralho aux = cria(); while ((*B) != NULL){ compra.carta = (*B)->carta; compra.naipe = (*B)->naipe; if (((*B)->prox) == NULL){ break; } insere_aux(&aux, ((*B)->carta), ((*B)->naipe)); (*B) = ((*B)->prox); } (*B) = aux; return compra; }
int main(void){ int i; struct aluno bixo; Lista *li; li = cria(); for (i = 0; i < N; i++){ scanf(" %d %s", &bixo.nusp, bixo.nome); insere_final(li, bixo); } print(li); scanf(" %d %s", &bixo.nusp, bixo.nome); insere_inicio(li, bixo); print(li); scanf(" %d %s", &bixo.nusp, bixo.nome); insere_meio(li, bixo, 2); print(li); remove_final(li); print(li); remove_meio(li, 1); print(li); remove_inicio(li); print(li); printf("%d\n", tamanho(li)); libera(li); return 0; }
main() { int a; char op; float n1=0, n2=0, tt; cria(); printf("Digite a expressao a ser calculada \nno formato (numero) (operador) (numero)"); scanf("%f %c %f", &n1, &op, &n2); push( n1 ); push( n2 ); n1 = pop(); n2 = pop(); if( op == '+') tt = n2 + n1; if( op == '-') tt = n2 - n1; if( op == '*') tt = n2 + n1; if( op == '/') tt = n2 / n1; printf("\n%f\n", tt); system("pause"); }
int main(void) { int mainop, op, elementValue, conjOp1, conjOp2, qtConjuntos, i, selConjunto; printf("Informe a quantidade de conjuntos: "); scanf("%i", &qtConjuntos); Conjunto *conjunto[qtConjuntos]; for(i=0; i<qtConjuntos; i++) { conjunto[i] = cria(); } selConjunto = 0; while(selConjunto < qtConjuntos) { printf("\n"); printf("1-inserir elemento no conjunto %i\n", selConjunto); printf("2-sair\n"); scanf("%i", &op); switch(op) { case 1: printf("=>"); scanf("%i", &elementValue); conjunto[selConjunto] = insereElementosOrdenados(conjunto[selConjunto], elementValue); break; case 2: selConjunto++; break; } } do { mainMenu(); printf("Sel: "); scanf("%i", &mainop); if(mainop > 5 || mainop <= 0) { printf("\n Informe uma opcao valida. (1, 2, 3, 4, 5)\n"); printf("Sel: "); scanf("%i", &mainop); } switch(mainop) { case 1: printf("\n"); for(i=0; i<qtConjuntos; i++) { printf("--- Valores no conjunto #%i ---\n", i); imprimeLista(conjunto[i]); printf("\n-------------------------------\n\n"); } printf("\n\n"); break; case 2: printf("\n Selecione os conjuntos para a operacao:\n"); for(i=0; i<qtConjuntos; i++) { printf("Conjunto - %i: ", i); imprimeLista(conjunto[i]); printf("\n\n"); } printf("Conjunto 1: "); scanf("%i", &conjOp1); printf("\n"); printf("Conjunto 2: "); scanf("%i", &conjOp2); diferencaEntreConjuntos(conjunto[conjOp1], conjunto[conjOp2]); printf("\n\n"); break; case 3: printf("\n Selecione os conjuntos para a operacao:\n"); for(i=0; i<qtConjuntos; i++) { printf("Conjunto - %i: ", i); imprimeLista(conjunto[i]); printf("\n\n"); } printf("Conjunto 1: "); scanf("%i", &conjOp1); printf("\n"); printf("Conjunto 2: "); scanf("%i", &conjOp2); intersecaoEntreConjuntos(conjunto[conjOp1], conjunto[conjOp2]); printf("\n\n"); break; case 4: printf("\n Selecione os conjuntos para a operacao:\n"); for(i=0; i<qtConjuntos; i++) { printf("Conjunto - %i: ", i); imprimeLista(conjunto[i]); printf("\n\n"); } printf("Conjunto 1: "); scanf("%i", &conjOp1); printf("\n"); printf("Conjunto 2: "); scanf("%i", &conjOp2); uniaoEntreConjuntos(conjunto[conjOp1], conjunto[conjOp2]); printf("\n\n"); break; case 5: return (EXIT_SUCCESS); } }while(mainop != 5); return (EXIT_SUCCESS); }