Пример #1
0
void buscaRecursiva(No **paiRaiz, int valorInserido){
	if(*paiRaiz != NULL){
		if(valorInserido < (*paiRaiz)->numero) buscaRecursiva(&(*paiRaiz)->esq, valorInserido);			
		else if(valorInserido > (*paiRaiz)->numero) buscaRecursiva(&(*paiRaiz)->dir, valorInserido);
		else if(valorInserido == (*paiRaiz)->numero) printf("O valor %d existe na Arvore\n", (*paiRaiz)->numero);
				
	}
	else{
		printf("O valor não existe na Arvore\n");
	}
}
Пример #2
0
int buscaRecursiva(int vetor[], int i, int f, int b){
    int m;
    m=(i+f)/2;
    if(i<=f){
        if(vetor[m] == b){
            return m;
        }
        else{
            if(vetor[m]<b){
                return buscaRecursiva(vetor,m+1,f,b);
            }
            else{
                return buscaRecursiva(vetor,i,m-1,b);
            }
        }
    }
    else{
        return -1;
    }
}
Пример #3
0
int main()
{
    int vetor[n];
    int i;

    int ti = GetTickCount();

    printf("Vetor desordenado:\n\n");
    for(i=0;i<n;i++){
        int r = rand() % 100000;
        vetor[i] = r;
        printf("%d ", vetor[i]);
    }

    int tf = GetTickCount();

    printf("\n\nTempo inicial: %d\n", ti);
    printf("\nTempo final: %d\n", tf);
    printf("\nTempo de execucao para criar o vetor: %d\n", tf-ti);

    printf("\n\n");

    ti = GetTickCount();
    ordena(vetor);
    tf = GetTickCount();

    printf("Vetor ordenado:\n\n");
    for(i=0;i<n;i++){
        printf("%d ", vetor[i]);
    }

    printf("\n\nTempo inicial: %d\n", ti);
    printf("\nTempo final: %d\n", tf);
    printf("\nTempo de execucao para ordenar o vetor: %d\n", tf-ti);


    printf("\n\n---------- BUSCA SE O VALOR EXISTE NO VETOR ORDENADO E MOSTRA SUA POSICAO ----------\n\n");
    int busca;
    printf("Busque um valor de 1 a 10:\n");
    scanf("%d", &busca);

    ti = GetTickCount();
    buscar(vetor, busca);
    tf = GetTickCount();

    printf("\n\nTempo inicial: %d\n", ti);
    printf("\nTempo final: %d\n", tf);
    printf("\nTempo de execucao para buscar um valor no vetor: %d\n", tf-ti);

    printf("\n\n---------------------------- BUSCA RECURSIVA DO CODIGO ANTERIOR ---------------------\n\n");
    int buscar, res;
    printf("Busque um valor de 1 a 10:\n");
    scanf("%d", &buscar);

    ti = GetTickCount();
    res = buscaRecursiva(vetor,0,100000,buscar);
    tf = GetTickCount();

    printf("Vetor pos: [%d]", res);

    printf("\n\nTempo inicial: %d\n", ti);
    printf("\nTempo final: %d\n", tf);
    printf("\nTempo de execucao para buscar recursivamente um valor no vetor: %d\n", tf-ti);
}
Пример #4
0
int main(){	
	bool sair = false;
	int opcaoSelecionada;
	int valorInserido;

	No *Arvore = NULL;
	Arvore = (No*) malloc(sizeof(No));
	

	imprimirOpcoes();

	while(!sair){		
		scanf("%d", &opcaoSelecionada);		
		
		switch(opcaoSelecionada){
			case 0:
			;
				imprimirOpcoes();
				break;
			case 1:
			;
				printf("Digite o valor para Busca Recursiva\n");
				scanf("%d",&valorInserido);

				buscaRecursiva(Arvore, valorInserido);
				break;

			case 2:
			;
				printf("Digite o valor para Busca Iterativa\n");
				scanf("%d",&valorInserido);

				buscaIterativa(Arvore, valorInserido);
				break;

			case 3:
			;
				printf("Digite o valor para Insercao Iterativa\n");	
				scanf("%d",&valorInserido);

				insercaoIterativa(Arvore,valorInserido);	
				break;	

			case 4:
			;
				printf("Digite o valor para Insercao Recursiva\n");	
				scanf("%d",&valorInserido);

				insercaoRecursiva(Arvore,valorInserido);		
				break;

			case 5:
			;
				printf("Digite o valor para Remocao\n");	
				scanf("%d",&valorInserido);

				remocao(Arvore,valorInserido);
				break;

			case 6:
			;
				percursoPre(Arvore);
				break;

			case 7:
			;
				percursoIn(Arvore);
				break;

			case 8:
			;
				percursoPos(Arvore);
				break;
				
			case 9:
			;
				free(Arvore);
				sair = true;
				break;

			default:
			;
				printf("Opcao invalida, digite 0 para ver todas as opcoes validas\n\n");				
				break;
		}
		
	}

	return 0;
}