Ciência da computaçâo
{
int info; struct dados *prox;
};
typedef struct dados Dados; typedef Dados* Hash[tam]; int funcaoHash(int num);/**/ void inicializaHash(Hash tab); /**/ void insereHash(Hash tab,int num); void buscaHash(Hash tab, int num); void imprimeHash(Hash tab); void removeHash(Hash tab, int num); void criarArquivo(FILE* arquivo); void reescreveArquivo(FILE* arquivo); void escreveArquivo(FILE* arquivo, int elemento); int carreagaArquivo(Hash tab); void linhaAnimada(int q, int a); void linha(int q, int a); void cor(WORD cor); void posicao(int x, int y); void menuHash(int *num); void menuEstatistica(int *num); float porcentagemHash(Hash tab); void indiceColisao(Hash tab); int quantidadeColisao(Hash tab); void posicoesVazias(Hash tab); void imprimeColisao(Hash tab, int pos); void numeroAleatorio(); void lerNumero(int *num); void lerNumero1(int *num); void lerNumero2(int *num); void mensagem(); void mesagem2(); void mensagem3(); void mensagem4();
Arquivo hash.c: # include <stdio.h>
# include <stdlib.h>
# include <windows.h>
# include <time.h>
# include <conio.h>
# include "hash.h" /*funcaoHash recebe como parametro uma variavel do tipo inteiro(num), retorna a restra da divisao do valor dessa variavel pela tamanho da tabela*/ int funcaoHash(int num)
{
return(num%tam);
}
/*O procedimento inicializaHash recebe como parametro uma variavel do tipo Hash e sua funcao e que todas as posicoes da tab se tornem nulas*/ void inicializaHash(Hash tab)
{
int i; for(i = 0; i < tam; i++) { tab[i] = NULL; }
}
/*O procedimento insererHash recebe como parametro dois argumentos uma variavel do tipo Hash e outra do tipo num. Sua funcao e inserir os elementos na tabela atraveis da funcaoHash e caso esta posicao ja esteja preenchida, como colisao