Forum Pplware
[C] Hash tables - Versão de Impressão

+- Forum Pplware (http://forum.pplware.com)
+-- Fórum: Mais Tech (/forumdisplay.php?fid=11)
+--- Fórum: Programação e Web (/forumdisplay.php?fid=16)
+--- Tópico: [C] Hash tables (/showthread.php?tid=5301)



[C] Hash tables - zeguel - 12-03-2010 20:52

Boas,

Precisava que alguem me arranja-se um exemplo duma hash table com chain ...ShyShyConfused


Vou ser mais preciso, tenho q gerir um grande nr de nomes, e tenho q ter um "sistema" que me permita fazer um search, vou usar hash tables pra isso, mas então lembrei m que caso apareçam 2as,3s ou até 1000 'Ana Maria' vou ter um índice igual... entao das 2as uma ou arranjo maneira de qnd ter um nome repetido somar um nr e assim passar pro indice seguinte ou crio um array no indice qnd tenho nomes iguais e assim mostro as ocorrências dos nomes....

Agradecia tb q se vos ocorrer algum método diferente, escrevam... Rolleyes


Hasta, gracias


RE: [C] Hash tables - Bruno Bernardino - 12-03-2010 20:59

Honestamente não percebi porque precisas das Hash tables, qual o teu problema nem o exemplo que queres...

Faz assim, diz em que linguagem queres fazer isso, quais as limitações (se existirem), os teus conhecimentos da linguagem e de algoritmia, qual o problema em si (ou seja, o que tem de acontecer), e qual a tua dificuldade.


RE: [C] Hash tables - Ferreira - 12-03-2010 21:19

Mudando ligeiramente de assunto, se o nome se pode repetir talvez não seja boa ideia usar (apenas) o nome como índice.

Isto não quer dizer, no entanto, que as hash tables com cadeia sejam uma má escolha.


RE: [C] Hash tables - zeguel - 12-03-2010 21:26

É em C... eu tinha metido no nome da thread Shy


Pronto... Imagina que tens 20000 pessoas e essas pessoas estão relacionadas entre si "tipo rede social" e eu queria que fosse possível criar um search por nome, dai as Hash tables pra ser mais rápida a pesquisa...só que as Hash tables criam um valor pro nome, e se eu tiver um nome igual tenho um valor igual, por isso é que queria a chain na Hash table...
Ou seja, eu tenho um grafo com os "utilizadores" e as suas respectivas relações, e depois quero que seja fácil pesquisar por nome e assim encontrar um amigo, mas neste trabalho eu tenho que ter em conta a rapidez do processamento...

É um pc dificil de explicar, tb tenho q dizer que os meus conhecimentos em Algoritmos são muito lineares, mas isso não é problema pq tenho como me desenrascar nesse campo ... ahh e tenho bons conhecimentos em C...
(12-03-2010 21:19)Ferreira Escreveu:  Mudando ligeiramente de assunto, se o nome se pode repetir talvez não seja boa ideia usar (apenas) o nome como índice.

Isto não quer dizer, no entanto, que as hash tables com cadeia sejam uma má escolha.

Pois mas é me pedido isso ... por isso é que eu pensei na Chain...


RE: [C] Hash tables - zeguel - 26-03-2010 18:54

Parece q resolvi o meu problema, e como nao vi nada aqui a ajudar, vou colocar o meu exemplo nao vá este ajudar alguem WinkWink

Código:
typedef struct utilizador {
   int w;
  char k ;
  int whatever;
  struct utilizador *next;
} *Users;

struct tabelas {
  int x;
  int y;
  struct utilizador * tabela[10000];
};

Entao, o q eu fiz foi criar a chain na tabela de hash quase como se fosse uma lista ligada, ou seja qnd vejo q o índice q tou a preencher já nao é nulo, crio o "nodo" da ligação como nas listas ligadas...

Atenção q o meu exemplo pode ser muito rudimentar e mal formulado etc... mas pra mim serviu, e pode ser q ajude alguemWinkTongue ...