Hash em C
#include
#include
int tamanho = 10;
int stringParaInt(char *string) { int tamanho, primeira, segunda;
tamanho = strlen(string); primeira = string[0]; segunda = string[1]; int resultado = (tamanho * primeira) + segunda; return resultado; }
int hash(int valor) { return valor % tamanho; }
int main() { int i; char carac[50];
printf("\nQual o tamanho da tabela desejada?: "); scanf("%d", &tamanho);
for (i=0; iinfo = v; novo->prox = l; novo->ant = NULL; if(l != NULL) /* verifico a lista não vazia */ l->ant = novo; return novo;
}
LISTA* buscar(LISTA* l, int v) /* busca a chave digitada v */
{
LISTA* p; for(p=l;p!=NULL;p=p->prox) { if(p->info == v) return p; /* endereço encontrado */ } return NULL; /* endereço não encontrado */
}
LISTA* remover(LISTA* l, int v) /* remover chave digitada */
{
LISTA* p = buscar(l,v); /* uso primeiro a função buscar */
if(p == NULL) return l; /* não encontrou */
if(l == p) /* verifica se é 1º elemento */ l = p->prox; else p->ant->prox = p->prox;
if(p->prox != NULL) /* verifica se é o último elemento */ p->prox->ant = p->ant; free(p);
return l;
}
#include
#include
int tamanhoTabela = 10;
/*Rotina que transforma uma string em um número que será usado depois na função hash
*/
int stringParaInt(char *string) { int tamanho, primeira, segunda; //Inteiros que representam o tamanho, //o código da primeira letra da string //e o código da segunda letra. tamanho =