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"); } }
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; } }
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); }
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; }