Exemplo n.º 1
0
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;
}
Exemplo n.º 2
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;
}
Exemplo n.º 3
0
Arquivo: retira.c Projeto: Clng/aula
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;
}
Exemplo n.º 4
0
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");
}
Exemplo n.º 6
0
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);
}