Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #57 da revista programar. Faz já o download aqui!

MACkie

Hashtable "à unha"

Mensagens Recomendadas

MACkie    0
MACkie

Boas,

O objectivo é fazer uma hashtable à unha, tal como diz o tópico. Logo, hashtable() tá fora de questão :)

O objectivo é converter palavras de A para B, para 10000 palavras e com um máximo de 200 entradas na hashtable (50 palavras - 25 + 25 - por entrada).

O que eu pensei foi o seguinte: Array principal - como se fosse um armário - com 200 posições -> Array secundário - gaveta - com 50 posições -> Array Terciário - divisão - com duas posições.

Como eu nao percebo muito de arrays tridimensionais nem encontro muita informação - contudo continuo a pesquisar violentamente - gostaria de saber uma coisa:

Se é possível que para o mesmo array sejam diferentes os dados, dependendo da posição do array superior, isto é:

array2[0] = array3["um", "dois"];

array2[1] = array3["Três", "Quatro"];

Acho que me fiz entender. Qualquer outra abordagem é bem-vinda!

Cumprimentos,

MACkie

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
M6    72
M6

Podes usar listas, uma lista de listas também é solução.

Se calhar a melhor forma é mesmo usares um array com listas penduradas, dado que cada entrada pode ter mais do que a capacidade definida inicialmente no array.

O maior desafio é, como sempre que se tem uma hashtable, encontrar uma função que faça uma distribuição equilibrada.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
MACkie    0
MACkie

A função de Hash é pelo método da multiplicação. O objectivo é ter a "hashtable" com 200 entradas. Depois teres 25 divisões para cada entrada e 2 sub-divisões. Daí advém os três arrays.

Vou mesmo tentar as listas e olhar para o código em Python e depois, puff.. nasce em C# ;)

Cumprimentos

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita a nossa Política de Privacidade