Tabela hash

Disponível somente no TrabalhosFeitos
  • Páginas : 2 (289 palavras )
  • Download(s) : 0
  • Publicado : 20 de janeiro de 2013
Ler documento completo
Amostra do texto
#include
#include
#include
#include

#define tam 7

int pesos[20]={2,3,5,8,13,21,34,55,89,144,3,4,6,9,14,22,35,
56,90,145} ;

struct item {
char chave[20];
intreg;
struct item *proximo;
};

struct item *hash[tam] = {NULL,NULL,NULL,NULL,NULL,NULL,NULL};
//----------------------------------
void menu();
void ler();
void listar();
void insere(charchave[20],int reg);
int pesquisa(char chave[20]);
int h(char chave[20]);

//---------------------------------------------------------------

main(){

menu();
}//---------------------------------------------------------------

void menu(){
int opcao, reg;
char chave[20];

system("cls");
printf("\n 1 - Ler");
printf("\n 2 - Tabela Hash");
printf("\n 3 - Listar");printf("\n 4 - Sair");
printf("\n Opcao: ");
scanf("%d",&opcao);

switch(opcao) {
case 1: ler();
printf("\n Ordenação concluida com sucesso");
getch();menu();
break;

case 2 : printf("\n Informe a chave de pesquisa: ");
scanf("%s",&chave);
reg = pesquisa(chave);
if (reg == -1)
printf("\nChave de pesquisa não foi encontrada");
else
printf("\n A Chave pertence ao registro %d",reg);
getch();
menu();
break;

case 3: listar();getch(); // ver msg
menu();
break;

case 4: exit(0);

default: printf("\n Opcao invalida");
getch();
menu();} // swicth
} // menu

//---------------------------------------------------------------

void ler(){
char chave[20];
int i;

for(i=1;ichave,chave);
aux->reg = reg;aux->proximo = NULL;

if (hash[i]== NULL)
hash[i] = aux;
else {
auxp=hash[i];
while(auxp->proximo != NULL)
auxp = auxp->proximo;
auxp->proximo = aux;
} // else
} // insere...
tracking img