• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

MACkie

Hashtable "à unha"

4 mensagens neste tópico

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não percebi o que queres perguntar.

E porquê 3 vectores para uma hashtable?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

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