Número de buscas realizadas
Olá pessoal,
Tenho um programa que insere/busca em uma lista aberta, como posso mostrar também, o número de buscas até achar o resultado?
#include <stdio.h>
#include <stdlib.h>
//****************************************************************************
//estrutura de nodo e vetor
struct no{//informação do no
int chave;
struct no *prox;
};
typedef struct no nodo;
nodo vet_encadeado[10];
int vet_end_aberto[10];
//****************************************************************************
void InicializaVetores(){
int i;
for(i=0;i<10;i++){
vet_encadeado[i].chave=0;
vet_encadeado[i].prox=NULL;
vet_end_aberto[i] = 0;
}
}
void InsereVetorEndAberto(int endereco, int val) {
int numero = 0;
int contador = endereco;
while(numero == 0){
if (vet_end_aberto[contador] == 0){
vet_end_aberto[contador] = val;
numero = 1;
contador = contador + 1;
}else{
contador = contador + 1;
}
if (contador >= 10){
contador = 0;
}
}
}
void PesquisaVetorEncadeado(int endereco, int val) {
//printf("Nao implementado neste exemplo!\n");
}
void PesquisaVetorEndAberto(int endereco, int val) {
int contador = 0;
int valor = 0;
printf("Enderecamento Aberto: ");
for (contador = 0; contador < 10; contador++){
if (vet_end_aberto[contador] == val){
printf("Valor %d foi encontrado na posicao %d \n",val,contador);
valor = 1;
}
}
if (valor == 0){
printf("Valor nao foi encontrado \n");
}
}
void ExibeVetor(void){
int contador = 0;
printf("Lista aberta: \n");
for (contador = 0; contador < 10; contador++){
printf("Valor no endereco %d: %d \n",contador,vet_end_aberto[contador]);
}
}
//****************************************************************************
main() {
int opcao, valor, end;
opcao = 0;
InicializaVetores();
while(opcao != 4){
system("cls");
printf(" |------------------|\n");
printf("\n Entre com a opcao:\n");
printf(" |--------------------|\n");
printf(" | 1 - Inserir valor |\n");
printf(" | 2 - Pesquisa valor |\n");
printf(" | 3 - Exibir vetores |\n");
printf(" | 4 - Sair |\n");
printf(" |--------------------|\n");
scanf("%d",&opcao);
switch(opcao) {
case 1: printf(" Digite um valor para inserir no vetor:\n");
//Lê valor de chave
scanf("%d",&valor);
//Calcula endereço
end = valor%10;
printf("Endereco calculado: %d\n",end);
InsereVetorEncadeado(end,valor);
InsereVetorEndAberto(end,valor);
system("pause");
break;
case 2: printf(" Digite um valor a ser pesquisado:\n");
//Lê valor de chave
scanf("%d",&valor);
//Calcula endereço
end = valor%10;
printf("Endereco calculado: %d\n",end);
PesquisaVetorEncadeado(end,valor);
PesquisaVetorEndAberto(end,valor);
system("pause");
break;
case 3: ExibeVetor();
system("pause");
break;
case 4: printf("\nVoce solicitou a opcao - sair!\n");
system("pause");
exit(0);
break;
default:printf("\tATENCAO - Opcao invalida, tente novamente!\n");
}
}
system("pause");
}Discussão (2)
Carregando comentários...