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

MACkie

Hashtable "à unha"

Mensagens Recomendadas

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


private void doNotDisturb(string motive)if(motive.compareTo(somethingReallyImportant) == 0)pay attention;else//do nothing

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
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.


10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
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


private void doNotDisturb(string motive)if(motive.compareTo(somethingReallyImportant) == 0)pay attention;else//do nothing

Partilhar esta mensagem


Ligação 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 os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.