Colocar Resposta 
 
Avaliação do Tópico:
  • 1 votos - 5 Média
  • 1
  • 2
  • 3
  • 4
  • 5
[C] Hash tables
12-03-2010, 20:52
Mensagem: #1
[C] Hash tables
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
Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
12-03-2010, 20:59
Mensagem: #2
RE: [C] Hash tables
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.

BrunoBernardino.com
Visitar Website de este utilizador Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
12-03-2010, 21:19
Mensagem: #3
RE: [C] Hash tables
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.

[Imagem: pplware_moderator.png]
http://twitter.com/ferreira
Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
12-03-2010, 21:26 (Esta mensagem foi modificada pela última vez a: 12-03-2010 21:29 por zeguel.)
Mensagem: #4
RE: [C] Hash tables
É 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...
Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
26-03-2010, 18:54
Mensagem: #5
RE: [C] Hash tables
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 ...
Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
Colocar Resposta 


Saltar Fórum:


Utilizadores a ver este tópico: 2 Visitante(s)