Ir ao conteúdo
  • Cadastre-se

Johny Macedo

Membro Júnior
  • Posts

    2
  • Cadastrado em

  • Última visita

Reputação

0
  1. @TYSQUARE89 Tentei e nada!, estou fazendo umas pesquisas aqui. No entanto, muito obrigado!
  2. Boa tarde galera Não estou entendendo o porque está ocorrendo isso. Estou fazendo um trabalho sobre tabelas hash, e sempre quando chamo a função de busca(busca_hash), o programa retorna -2 que seria quando a tabela está cheia. Se estiver alguma coisa errada no código eu não consigo visualizar isso. Alguém pode me ajudar? Agradeço. #include <stdlib.h> #include <stdio.h> #include <time.h> #define TAM 15 int opc; void menu(){ printf("\t******************** TABELAS HASH ********************\n\n"); printf("(1)Inserir novo elemento\n(2)Buscar um elemento\n(3)Visualizar elementos\n\n"); printf("Digite uma opcao: "); scanf("%d",&opc); //system("cls"); } int hash(int x) { return x % 15; } int insere(int *a, int x, int n){ int i, cont = 0; i = hash(x); while(a != -1){ if (a == x){ // POSIÇÃO OCUPADA. return -1; } if (++cont == n){ return -2; } if (++i == n){ i = 0; } } a = x; return i; } int busca_hash(int *a, int x, int n){ int i, cont = 0, compare=0; i = hash(x); while(a != x){ compare++; if(a == -1) return -1; if(++cont == n) // TABELA CHEIA... return -2; if(++i == n) i = 0; } printf("\nNumero de comparacoes realizadas = %d\n", compare); return i; } int main() { int vet[TAM], num, tam_tabela = TAM, numero,i,x=0; char cont; do{ menu(); switch(opc) { case 1: printf("\nDigite um numero a ser inserido: "); scanf("%d", &num); insere(vet,num,tam_tabela); x++; break; case 2: printf("\nQual numero deseja buscar? "); scanf("%d", &numero); printf("\nNumero encontrado na posicao: %d\n", busca_hash(vet,numero,tam_tabela)); break; case 3: printf("\n"); for (i=0; i<x; i++){ printf("%d ",vet); } printf("\n"); break; } printf("\nDeseja continuar?(s)sim (n)nao: "); scanf(" %c",&cont); printf("\n\n"); cont = toupper(cont); //system("cls"); }while(cont == 'S'); system("pause"); return 0; }

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...